调用一次fork返回2次
生活随笔
收集整理的這篇文章主要介紹了
调用一次fork返回2次
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ?linux下創建一個進程,大家都會想到fork(),這個函數我們并不陌生。這個函數有三個返回值,在父進程中,fork()返回創建子進程的id,在子進程中返回0,出現錯誤返回一個負值。當我們調用一次fork()時,其實是返回了2次,父進程一次,子進程一次。因為fork復制了父進程的堆棧,所以兩個進程停留在fork函數中。
#include<stdio.h> #include<unistd.h>int main() {int pid=0;pid=fork();printf("pid=%d\n",pid);if(pid<0){printf("error1\n");return 1;}if(0==pid){printf("son id:%d\n",getpid()); while(1);//不讓進程退出return 0;}if(0!=pid){printf("father id:%d\n",getpid());while(1);//不讓進程退出return 0;}return 0; }打印:
看進程顯示結果:
進程和對應的父進程都顯示出來了。關于多進程方面還有很多知識,以后再寫。
學習地址:http://blog.csdn.net/happyguys12345/article/details/52550180
總結
以上是生活随笔為你收集整理的调用一次fork返回2次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结构体成员的存储
- 下一篇: 3次握手中的最后一个ACK服务端收到了吗