Linux下利用fork()创建子进程并使父进程等待子进程结束
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接
int status;
pid_t t = fork();
if(t){
waitpid(t, &status, 0);
}else{
system("vi temp.txt");
exit(0);
}
//父进程和子进程均执行完毕后继续执行下去
分析过程:
if 和 else 还是选择分支。
主要的原因是,fork() 函数调用一次,返回两次。两次返回的区别是:子进程的返回值是0,父进程返回值为新子进程的进程ID。返回后,父进程执行waitpid(t, &status, 0)等待子进程结束,而子进程进入另一个分支执行system("vi temp.txt");exit(0);,父子间并不冲突,可以形容这段代码父进程与子进程都执行了一次判断。RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成
主要的原因是,fork() 函数调用一次,返回两次。两次返回的区别是:子进程的返回值是0,父进程返回值为新子进程的进程ID。返回后,父进程执行waitpid(t, &status, 0)等待子进程结束,而子进程进入另一个分支执行system("vi temp.txt");exit(0);,父子间并不冲突,可以形容这段代码父进程与子进程都执行了一次判断。RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成