【by lanmanck】
创建子进程一般用fork,因为用execv后就不返回了,父进程无法跟子进程通信。
这里有个例子:
http://blog.csdn.net/wallwind/article/details/6998602
父进程fork后,可以使用wait和wait_pid来等待子进程结束,wait/wait_pid可以阻塞也可以不阻塞,权威解析在这里:
http://linux.die.net/man/3/wait
示例代码修改一下:
#include "stdio.h"
#include"stdlib.h"
#include
#include
#include
int main(void)
{
int child_ret;
pid_t pid1,pid2;
printf("before fork\n");
if((pid1=fork())<0){
printf("fork error");
}else if(pid1==0){
printf("child process's pid=%d,sleep 3 sec\n",getpid());
sleep(3);
exit(-3); //line19
}else{
printf("parent process wait child terminate...\n");
pid2