C --- wait(NULL) 作用?

Well, sorry, that much is obvious. What you want to know is, probably, what it waits for. The answer is: the termination of a child process. // 答案是:终止一个子进程

When you create a new child process with fork(), you have no control over when it will be executed with regard to its parent - it is up to the scheduler. You use wait for synchronization, when you want to make sure the parent will only proceed with its execution when its child has terminated. // 当您使用 fork() 创建一个新的子进程时,您无法控制何时执行它的父进程 - 这取决于调度程序。当您想确保父级仅在其子级终止时才继续执行时,您可以使用等待同步

If the parent’s execution reaches the wait before any child has terminated, it will stop the execution and only go on when a child has terminated. If a child terminates before the parent has reached wait, the child becomes a zombie, and when the parent reaches wait it destroys (“reaps”) the zombie and proceeds immediately. // 如果父级的执行在任何子级终止之前到达等待,它将停止执行并且仅在子级终止时继续执行。如果子进程在父进程到达等待之前终止,子进程将成为僵尸,当父进程到达等待时,它会销毁(“收割”)僵尸并立即继续。

You actually don’t call wait(), wait takes one int* argument that points to a integer where the child’s exit status will be stored. If you don’t care about the child’s exit status (which is quite often), you can just call wait(NULL). // 你实际上并没有调用 wait(),wait 接受一个 int* 参数,该参数指向一个整数,子进程的退出状态将存储在该整数中。如果你不关心孩子的退出状态(这很常见)

wait waits for the termination of any child process. If you want to wait for a specific child, see waitpid. //  wait 等待任何子进程的终止。如果要等待特定的孩子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自驱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值