原创blog,转载请注明出处
头文件:
#include<unistd.h>#include<sys/types.h>
函数原型:
pid_t fork( void);
(pid_t 是一个宏定义,其实质是int 被定义在#include<sys/types.h>中)
返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1
注意,子进程是父进程的副本,拷贝父进程的数据空间,堆栈等资源。父子进程不共享上述资源。
每执行一次fork()函数,会返回两次,一次是在父进程,一次是在子进程,两次的返回值不一样。
我们来看一个简单的例子
#include<unistd.h>
#include<sys/types.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char ** argv )
{
pid_t result = fork();
if(result < 0)
{
printf("Error");
}
else if(result == 0)
{
printf("From the son");
}
else
{
printf("From the father");
}
}