多进程fork()函数
生活随笔
收集整理的這篇文章主要介紹了
多进程fork()函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考《TCP\IP網絡編程》
多進程服務器端
fork()函數
fork()函數從當前進程中創建一個子進程,子進程和父進程的環境完全一樣,除了父子進程中fork()函數返回的進程ID號,在父進程中返回的是子進程的進程ID,子進程中返回0。利用這個不同,父子進程可以進入到不同的程序執行流。
wait()和waitpid()函數
當子進程結束,需要父進程回收子進程的資源比如pcb描述文件。wait()函數回阻塞父進程等待子進程結束,waitpid()不會阻塞父進程,但是如果執行waitpid()時子進程還沒有結束,那么父進程會錯過對子進程的回收。
sigaction()函數
這個函數同Qt中的信號函數有點像,當子進程結束的時候會調用指定的父進程中的函數,在父進程函數中使用waitpid()函數回收子進程資源。
僵尸進程
當子進程已經結束 而父進程沒有回收子進程的時候,就是僵尸進程。這個時候當父進程結束的時候子進程會變為init進程的子進程被回收。
當父進程提前結束,子進程沒有結束,子進程會成為init的子進程。
總結
以上是生活随笔為你收集整理的多进程fork()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP/UDP 套接字总结
- 下一篇: 数据结构与算法 总结