fork()函数
作者:bin意义:
fork顾名思义,即分叉,进程分叉为2个进程,即新增一个子进程。
int fork_3(){ printf("it's the main process step 1!!\n\n"); fork(); printf("step2 after fork() !!\n\n"); int i; scanf("%d",&i); //prevent exiting return 0; }
执行如上程序将会输出2条:
step2 after fork()
即程序在fork()后出现分支。
使用场景:
因为fork()函数在 主进程 与 子进程 的 返回值 不一样,主进程返回进程号,子进程返回0;
通过如下语句进行区分处理;
if (fork()) exit(0);
这里即将主进程结束,子进程进行下去(常用语守护进程),如下
if (setsid() == -1) exit(1);