wait
和waitpid
是Unix/Linux操作系统中用于等待子进程结束的系统调用函数。它们有以下区别:
参数不同:wait
函数不需要指定子进程的ID,而waitpid
函数需要指定子进程的ID。
阻塞行为不同:wait
函数将调用进程阻塞,直到任意一个子进程终止。而waitpid
函数可以指定不同的选项,可以选择立即返回,不阻塞调用进程。
处理多个子进程时不同:wait
函数只能等待任意一个子进程终止,而waitpid
函数可以等待指定的子进程终止,或者等待任意一个子进程终止。
错误处理不同:wait
函数不能指定错误处理方式,而waitpid
函数可以通过设置WNOHANG
选项来指定当没有已终止的子进程时,不阻塞调用进程,立即返回0。
总结起来,wait
函数是比较简单的等待子进程终止的方法,而waitpid
函数则更加灵活,可以根据需要选择等待特定的子进程或者立即返回,不阻塞调用进程。