fork() 질문
글쓴이: irum66 / 작성시간: 월, 2003/05/19 - 9:52오전
안녕하세요.. 질문이 있습니다..
while(1) { sleep(10) fork_result = fork(); if(fork_result == -1) { printf("fork failure"); exit(1); } if(fork_result == 0) { <쓰레드 구문> exit(0); } }
fork로 자식프로세스를 만들고 자식프로세스에서 쓰레드를 생성할려고 합니다..
10 초마다 1번씩 처리하고 싶은데.. 이대로 하면 자꾸 좀비 프로세스가 생기는 군요... 좀비프로세스를 없애는 방법이 없는지요..!!
그리고 다중 쓰레드 쓰는 방법줌 갈켜 주세요..[/code]
Forums:
waitpid 와 그 옵션인 WNOHANG 을 찾아 보세요.빙글
waitpid 와 그 옵션인 WNOHANG 을 찾아 보세요.
빙글빙글 돌면서 중간에 처리하면 될 것 같군요.
SIGCHLD signal 을 두어 waitpoid 하 는 방법도 있지만 위 코드라면,
while 안에 두는 것도 괜찮겠습니다.
---
http://coolengineer.com
waitpid 의 경우 자식 프로세스가....
혹시 waitpid 가 자식프로세스가 끝날때까지 기다리는 것은 아닌지...
제가 생각하는 것은 10초마다 한번씩 수행되어야 합니다...
waitpid 가 자식프로세스가 쓰레드를 실행하는 동안 끝나기를 기다린다면..
10초에서 쓰레드가 실행된 시간만큼 지나서 그러니깐. 10초보다 더 많은 시간마다 실행되는게 아닌지..!!!
제가 잘못 알고있는 건지 아니면.. 할수 있는 방법이 있는지 갈켜 주세요...
WNOHANG 은 끝날때까지 기다리지 말라는 option 입니다.
WNOHANG 은 끝날때까지 기다리지 말라는 option 입니다.
수고하세요..
---
http://coolengineer.com
댓글 달기