linux c之创建进程fork和vfork函数之间的区别
生活随笔
收集整理的這篇文章主要介紹了
linux c之创建进程fork和vfork函数之间的区别
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、函數(shù)簡介
1)、得到當前的進程id
pid_t getpid();
2)、fork函數(shù)
要創(chuàng)建進程,必須調(diào)用fork函數(shù), 系統(tǒng)調(diào)用fork用于派生一個進程,函數(shù)原型如下
#include<sys/types.h>#include<unistd.h>pid_t fork(void)
若成功,父進程中返回子進程id,子進程返回0;若出錯則返回-1,若出錯返回0,要注意這是2次返回,由于在復(fù)制時復(fù)制了父進程的堆棧段,所以兩個進程都停留在fork函數(shù)中,等待 返回。因此fork函數(shù)會返回兩次,一次是在父進程中返回,另一次是在子進程中返回,這兩次的返回值是不一樣的,fork后就復(fù)制拉了一個進程,原來進程叫父進程,子進程是父進程的一個拷貝,子進程得到數(shù)據(jù)段和堆棧段的拷貝,父和子進程數(shù)據(jù)不共享。
3 )、vfork函數(shù)
#include<sys/types.h>#include<unistd.h>pid_t vfork(void)
總結(jié)
以上是生活随笔為你收集整理的linux c之创建进程fork和vfork函数之间的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux c之出现warning: i
- 下一篇: linux c之main(int ar