进程fork

来源:互联网 发布:杭州哪里可以学编程 编辑:程序博客网 时间:2024/05/14 13:07
fork()在 Linux 系统库 unistd.h 中的函数声明如下:pid_t fork(void);

程序:forktest.c

#include <stdio.h>
#include <unistd.h>

main()
{
    pid_t pid;
    printf("Now only one process\n");
    printf("Calling fork...\n");
    pid = fork();
    if(!pid)
        printf("I'm the child\n");
    else if(pid>0)
        printf("I'm the parent,child has the pid %d\n",pid);
    else
        printf("Fork fail\n");
}

$ gcc forktest.c -o forktest
$ ./forktest
结果:
Now only one process
Calling fork...
I'm the parent,child has the pid 2545
I'm the child

pid值为零:子进程;pid>0父进程;pid为负fork失败;