1. 程式人生 > >fork建立新程序函式

fork建立新程序函式

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返回值,就可以讓程式在呼叫程序和新創程序中執行不同的功能。