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