0


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 等待任何子进程的终止。如果要等待特定的孩子

标签: os

本文转载自: https://blog.csdn.net/qfzhangwei/article/details/120203798
版权归原作者 平静不绝望 所有, 如有侵权,请联系我们删除。

“C --- wait(NULL) 作用?”的评论:

还没有评论