In Stevens UNIX Network Programming erwähnt er Umleitung stdin, stdout und stderr, die beim Einrichten eines Daemon benötigt wird. Er tut es mit dem folgenden C-CodeUmleiten von STDIN, STDOUT, STDERR nach/dev/null in C
/* redirect stdin, stdout, and stderr to /dev/null */
open("/dev/null", O_RDONLY);
open("/dev/null", O_RDWR);
open("/dev/null", O_RDWR);
Ich bin verwirrt, wie diese drei ‚wissen‘, sie sind Umleiten der drei std *. Zumal die letzten beiden Befehle gleich sind. Könnte mir jemand erklären oder in die richtige Richtung weisen?
Tch. Es ist gefährlich, es so zu machen. Verwenden Sie immer 'dup2()'. –
Es ist nicht gefährlich, wenn Ihr Prozess single-threaded ist und Sie bereits den alten stdin/out/err geschlossen haben. –
Diese Antwort könnte helfen: http://stackoverflow.com/a/4973065/207753 – SlappyTheFish