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