2
그래서 저는 C로 유닉스 쉘을 작성 중이며 경쟁 조건이 발생했습니다. Fork() 호출 후에 부모가 자식보다 먼저 실행되도록 할 수 있다면 해결할 수 있다고 판단했습니다. 신호 또는 다른 유형의 프로세스 간 통신을 사용하여이를 수행 할 수있는 방법이 있습니까?포크 - 먼저 부모가 실행되도록하려면 어떻게해야합니까?
그래서 저는 C로 유닉스 쉘을 작성 중이며 경쟁 조건이 발생했습니다. Fork() 호출 후에 부모가 자식보다 먼저 실행되도록 할 수 있다면 해결할 수 있다고 판단했습니다. 신호 또는 다른 유형의 프로세스 간 통신을 사용하여이를 수행 할 수있는 방법이 있습니까?포크 - 먼저 부모가 실행되도록하려면 어떻게해야합니까?
신호 처리기를 설정하고 자식이 신호 처리기를 기다리도록 할 수 있습니다. SIGUSR1.
Fork() 호출을 수행 한 함수 내에서이를 수행 할 수 있습니까? 아니면 다른 신호 처리 함수를 설정해야합니까? – user1174511
(fork == 0)이 자식 인 경우 그 순간부터 새 프로세스에서 필요한 것을 수행 할 수 있습니다. 보통 당신은 먼저 정리를해야합니다. 하지만 파이프를 사용하는 것이 더 나을 수도 있습니다. 왜냐하면 어떤 명령을 보낼 때까지 부모를 기다릴 수 없기 때문입니다. – Devolus
나는 파이프로 놀아 보았는데 잘 작동하는 것 같다. 감사! – user1174511