다른 프로세스를 시작하기 위해 fork와 execv를 사용하는 응용 프로그램을 작성했습니다. 상태에 대한 알림을위한 파이프를 만들었고 시작한 프로세스의 주요 입력에서 올바르게 시작되었음을 알리기 위해 몇 바이트를 씁니다. 그렇지 않으면 쓰기 파이프가 분기 된 프로세스에서 닫혀 있기 때문에 read가 0을 반환합니다.UNIX에서 fd 2를 임시로 비활성화하는 방법이 있습니까?
유일한 문제는 프로세스가 실행되지 않을 때 (부재 라이브러리) 문제에 대해 stderr에 메시지가 표시된다는 것입니다. 메시지는 쉘에 무엇이 잘못되었는지 기록됩니다. 나는 그것을 조용히하고 싶다. 그러나 execv 전에 close (2)하면 내가 원하는 것을 메시지가 없습니다. 아직도 나는 fd 2를 stderr에 대해 열어두고 싶다.
부모 프로세스가 오류 메시지를보고 싶다면'dup (1, 2)'. –