fork创建新进程函数

fork函数通过系统调用创建一个与原来进程相同的进程。

fork一次调用返回两次:
一次是在调用进程返回,返回值为新进程的pid;
一次是在新创建的进程返回,返回值为0。

看程序:

[root@xjbpc 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;
}
[root@xjbpc c]# gcc fork.c 
[root@xjbpc 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返回值,就可以让程序在调用进程和新创进程中执行不同的功能。

猜你喜欢

转载自blog.csdn.net/xuejianbest/article/details/84791163