http://www.itp.uzh.ch/~dpotter/howto/daemonizeにある実装に基づいて端末からデタッチする Linux コードがあります。
ここにコードスニペットがあります:
....
freopen( "/dev/null", "r", stdin);
freopen( "/dev/null", "w", stdout);
freopen( "/dev/null", "w", stderr);
kill( parent, SIGUSR1 );
}
/dev/nullにリダイレクトする代わりに、次の方法で標準のファイル記述子を閉じて、同じ結果を得ることができます。
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
今のところ、使用するアプローチに少しこだわっています:リダイレクトまたはクローズ? 各アプローチの潜在的な問題は何ですか?