fork建立新程序函式
阿新 • • 發佈:2018-12-06
fork函式通過系統呼叫建立一個與原來程序相同的程序。
fork一次呼叫返回兩次:
一次是在呼叫程序返回,返回值為新程序的pid;
一次是在新建立的程序返回,返回值為0。
看程式:
[[email protected] c]# cat fork.c
#include <unistd.h>
#include <stdio.h>
int main() {
printf("getpid:%d\n", getpid());
int pid = fork();
printf("getpid:%d, fork_return:%d\n" , getpid(), pid);
return 0;
}
[[email protected] c]# gcc fork.c
[[email protected] c]# ./a.out
getpid:5729
getpid:5729, fork_return:5730
getpid:5730, fork_return:0
#程式說明:原程序pid為5729。呼叫fork後系統建立一個新程序,新程序pid為5730。在原程序中fork返回值為新程序pid5730,在新程序中fork返回值為0。
# 所以通過判斷fork返回值,就可以讓兩個程序執行不同的程式碼(用if else結構)。
所以通過判斷fork返回值,就可以讓程式在呼叫程序和新創程序中執行不同的功能。