Linux下的fork


Linux下的fork产生子进程,调用一次,返回两次。

fork()<0时,失败。

fork()==0时,子进程中。(子进程ID)

fork()>0时,父进程中。(告诉父进程产生的子进程ID)

main (){
pid_t pid;

switch (pid = fork())
{
case -1:
/* 这里pid为-1,fork函数失败 */
/* 一些可能的原因是 */
/* 进程数或虚拟内存用尽 */
perror("The fork failed!");
break;

case 0:
/* pid为0,子进程 */
/* 这里,我们是孩子,要做什么? */
/* ... */
/* 但是做完后, 我们需要做类似下面: */
_exit(0);

default:
/* pid大于0,为父进程得到的子进程号 */
printf("Child's pid is %d\n",pid);
}
return 0;
}

相关内容