StevensのUNIXネットワークプログラミングでは、デーモンを設定するときに必要なstdin、stdout、およびstderrのリダイレクトについて言及しています。彼は、次のCコードSTDIN、STDOUT、STDERRをCの/ dev/nullにリダイレクトする
/* redirect stdin, stdout, and stderr to /dev/null */
open("/dev/null", O_RDONLY);
open("/dev/null", O_RDWR);
open("/dev/null", O_RDWR);
私はこれら三つのは、彼らが* 3、STDをリダイレクトしている「知っている」はどのように混乱しているとそれをしません。特に、最後の2つのコマンドが同じであるためです。誰かが正しい方向に私を説明したり指摘したりすることができますか?
Tch。このようにするのは危険です。常に 'dup2()'を使用してください。 –
あなたのプロセスがシングルスレッドで、古いstdin/out/errをすでに閉じている場合は危険ではありません。 –
この回答は何らかの助けになるかもしれません:http://stackoverflow.com/a/4973065/207753 – SlappyTheFish