= read(STDIN_FILENO, buffer, 1) == -1 ? errno : 0;
daemonized.write_to_stdout
= write(STDOUT_FILENO, buffer, 1) == -1 ? errno : 0;
- daemonized.write_to_stderr
- = write(STDERR_FILENO, buffer, 1) == -1 ? errno : 0;
+ if (write(STDERR_FILENO, buffer, 1) != 1) {
+ daemonized.write_to_stderr = errno;
+ if (daemonized.write_to_stderr == 0)
+ daemonized.write_to_stderr = -1;
+ } else
+ daemonized.write_to_stderr = 0;
/* Make sure parent exits. */
while (getppid() == pid)
ok1(daemonized.in_root_dir);
ok1(daemonized.read_from_stdin == EBADF);
ok1(daemonized.write_to_stdout == EBADF);
- ok1(daemonized.write_to_stderr == EBADF);
+ ok1(daemonized.write_to_stderr == 0);
return exit_status();
}