linux编程wait(0)放在最后一句有什么用

linux编程wait(0)放在最后一句有什么用,第1张

wait是等待,等待前面的所有子进程全部执行完才继续。这里p1=fork(),p2=fork()不是有调用到fork子进程吗

写这个的目的是避免上面的还没执行完就开始执行后续的程序了。

我举个例子,你在执行备份后删除原文件 *** 作,备份还没进行完,程序就开始删除了。这样就会出错了。

当然你这里后续没有 *** 作,wait只是在等待上面的全部做完然后退出整个程序。

linux中的wait函数等到一个子进程退出就会返回,恢复到执行状态。要想等所有子进程退出可以用waitpid函数

pid_t wait(pid_t pid,int * status,int options)

pid>0时,只等待pid与该参数相同的子进程,如果该子进程一直没有退出,那么父进程会一直阻塞;

pid=0时,会等待同一个进程组的子进程,若子进程加入了其他进程组,waitpid()不再关心它的状态;

pid=-1时,waitpid()与wait()函数相同,将阻塞等待并回收一个子进程;

pid<-1时,会等待指定进程组的任何子进程,进程组的id等于pid的绝对值;


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7326101.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存