Stevens의 UNIX 네트워크 프로그래밍에서 그는 데몬을 설정할 때 필요한 stdin, stdout 및 stderr의 경로 재 지정에 대해 언급합니다. 그는 다음과 같은 C 코드C에서 STDIN, STDOUT, STDERR을/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);
나는이 세 가지가 * 세 가지 표준을 리디렉션하는 '알'이 얼마나 혼란 스러워요로 않습니다. 특히 마지막 두 명령이 같기 때문에 특히 그렇습니다. 누군가가 설명하거나 올바른 방향으로 나를 가리킬 수 있을까요?
Tch. 이런 식으로하는 것은 위험합니다. 항상'dup2()'를 사용하십시오. –
프로세스가 단일 스레드이고 이전 stdin/out/err을 이미 닫은 경우 위험하지 않습니다. –
이 답변은 도움이 될 수 있습니다. http://stackoverflow.com/a/4973065/207753 – SlappyTheFish