红联Linux门户
Linux帮助

linux下的fork

发布时间:2008-10-15 00:49:42来源:红联作者:5trnga
linux下的fork产生子进程,调用一次,返回两次。

fork()<0时,失败。

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

fork()>0时,父进程中。(告诉父进程产生的子进程ID)[code]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;
}[/code]
文章评论

共有 3 条评论

  1. tanglun 于 2008-10-19 22:56:30发表:

    早一阵子一直对这个函数很迷惑,但最近明白了,你的理解也很对!

  2. wstoneh 于 2008-10-19 13:12:08发表:

    :0)1

  3. chris078426 于 2008-10-15 09:08:52发表:

    (hl):hao