시그널을 보낼때 sleep을 해야 합니까?
글쓴이: superb86 / 작성시간: 일, 2003/06/01 - 7:02오후
안녕하세요
시스템 프로그래밍책을 보면서 공부를 하고 있습니다...
그런데 시그널 을 보내는 함수가 kill()함수를 사용합니다.
kill(pid, SIGUSR1); 이렇게 사용을 합니다.
앞에 sleep()을 써야 제대로 동작을 합니다...
예제도 sleep(1); 나오고 다음에 kill()함수를 사용하여 제대로 결과를 얻는데
sleep()함수를 빼면 제대로 결과가 안나오네요...
답변 부탁드립니다... 왜그런것인지..잘 모르겠네요..
Forums:
테스트하신 소스를 올려 주시지요...^^
테스트하신 소스를 올려 주시지요...^^
---
http://coolengineer.com
그렇게 동작할 리는 없습니다.sleep(1);kill(...)
그렇게 동작할 리는 없습니다.
sleep(1);
kill(...);
sleep() 하는 동안 시그널을 받는 프로세스가 SIGUSR1에 대한 핸들러를
지정했겠지요..
sleep()을 쓰지 않은 경우에는 잘 동작하지 않는다고 하셨는데,
시그널을 받는 프로세스에서 시그널 액션을 변경하는 함수
(signal, sigaction 등)를 호출하는 시점이 위 프로그램에서 kill 하는
시점보다 먼저인지 확실히 검사해 보세요.
댓글 달기