У нас есть код linux, который отделяет терминал от реализации на основе найденной на http://www.itp.uzh.ch/~dpotter/howto/daemonize.linux: закрыть или перенаправить стандартный вывод на/dev/null после отсоединения от терминала
Вот фрагмент кода из него:
....
freopen("/dev/null", "r", stdin);
freopen("/dev/null", "w", stdout);
freopen("/dev/null", "w", stderr);
kill(parent, SIGUSR1);
}
Вместо перенаправлении /разработчика/нуль Я могу просто закрыть стандартных дескрипторов файлов следующим образом и достичь того же результата:
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
На данный момент я немного зациклен на том, какой подход использовать: перенаправить или закрыть? каковы потенциальные проблемы каждого подхода?