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]
tanglun 于 2008-10-19 22:56:30发表:
早一阵子一直对这个函数很迷惑,但最近明白了,你的理解也很对!
wstoneh 于 2008-10-19 13:12:08发表:
:0)1
chris078426 于 2008-10-15 09:08:52发表:
(hl):hao