commit - a285a990436511d506bc80553807ed848bdbeff2
commit + ea36b3dfcccdc0f620603c3abb797d178ff4b50a
blob - f1bdf6d2ff8fd9ab44635a725adae753a9f259e3
blob + d9ba3d14d96afa4664dc8d92ae35b00c13c2c889
--- FICS/ficsmain.c
+++ FICS/ficsmain.c
__func__,
DAEMON_LOCKFILE);
} else if ((fd[0] = open(DAEMON_LOCKFILE, (O_CREAT | O_RDWR),
- mode[0])) == -1)
+ mode[0])) == -1) {
err(1, "%s: open(%s, ...)", __func__, DAEMON_LOCKFILE);
-
- dprintf(fd[0], "%jd\n", (intmax_t)getpid());
- close(fd[0]);
-
- if ((fd[1] = open(DAEMON_LOGFILE, (O_APPEND | O_CREAT | O_RDWR),
- mode[1])) == -1)
+ } else if ((fd[1] = open(DAEMON_LOGFILE, (O_APPEND | O_CREAT | O_RDWR),
+ mode[1])) == -1) {
err(1, "%s: open(%s, ...)", __func__, DAEMON_LOGFILE);
- else if (daemon(1, 1) == -1) {
+ } else if (daemon(1, 1) == -1) {
int i;
i = errno;
+ close(fd[0]);
close(fd[1]);
errno = i;
err(1, "%s: failed to run in the background", __func__);
}
+ dprintf(fd[0], "%jd\n", (intmax_t)getpid());
+ close(fd[0]);
+
(void) dup2(fd[1], STDIN_FILENO);
(void) dup2(fd[1], STDOUT_FILENO);
(void) dup2(fd[1], STDERR_FILENO);