关于fork()返回2次,个人觉得发在这里比linux区靠谱,求围观~
在linux中,可以使用fork创建一个子进程,这里fork是会返回2次的,1次时父进程返回,返回的是子进程PID,另一次是子进程返回的,返回0表示创建子进程成功.如下:
int iPid = fork(); if(iPid == 0) { printf("start son proc \n"); execlp("son", "", "", (char *)0, NULL); //在DVRProxy的命令行第二个参数是配置文件的名称 } else { printf("son pid is: %d \n", iPid); }
int iPid = fork(); printf("pid is: %d \n", iPid); printf("pid is: %d \n", iPid);
void test(){ int iPid = fork(); if(iPid == 0) { printf("start son proc \n"); execlp("son", "", "", (char *)0, NULL); //在DVRProxy的命令行第二个参数是配置文件的名称 } else { printf("son pid is: %d \n", iPid); }}
int iPid = fork(); if(iPid == 0) { printf("start son proc \n"); execlp("son", "", "", (char *)0, NULL); //子进程等于0 } else { printf("father pid is: %d \n", iPid); //父进程大于0 }