- 论坛徽章:
- 0
|
小弟最近在学LINUX C编程, 现在看到创建进程这一块,有些地方不太明白,望各位朋友和前辈们指点一下!
下面是在一个教程上看到的讲解例子,讲得很明白, 只是我有点不太理解fork的用法.
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
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);
}
fork()函数创建完子进程后,我怎么控制子进程? 在case 0里做吗? 我运行了上面的程序,没得到过0的时候. 如果0和大于0的数都代表子进程,那又为什么将它们区别开呢? 也许我是陷入一个死角了,这个问题对于大家来说根本不能算个问题,那就请各位把我从角落里拉出来吧,谢谢了! |
|