Linux如何避免進程僵死 |
發(fā)布時間: 2012/8/10 14:18:29 |
一個進程終止但是父進程尚未進行回收,就是僵死。
避免僵死可以調(diào)用waitpid等待子進程結(jié)束,但是其間父進程一直阻塞。 更好的辦法是調(diào)用兩次fork函數(shù)。 源代碼如下: #include #include #include int main() { pid_t pid; if((pid = fork()) < 0)//出錯 { perror("fork!n"); } else if(pid == 0)//子進程1 {//子進程中創(chuàng)建進程2 if((pid =fork()) < 0)//出錯 { perror("fork!n"); } else if(pid > 0)//進程1 { exit(0);//退出 } else//子進程2 { sleep(2); printf("second child, parent pid = %dn", getpid()); exit(0); } } else//父進程 { sleep(3); printf("parent!n"); exit(0); } } 本文出自:億恩科技【prubsntakaful.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |