0

对于我的学校作业,我的教授希望我存储我用我的程序创建的后台进程的状态,并存储在进程表中,每个进程条目要么是“进行中”,要么是“完成”。要检查一个过程是否已完成(终止),我的教授需要我使用 waitpid()来执行此操作。

我不知道如何做到这一点,因为如果我循环遍历我在后台创建的所有进程(一堆 sleep())并且我通过检查 waitpid() 是否与每个进程的 id 来检查每个进程作为 waitpid() 的参数,它返回的不是 -1(不是错误),那么当我真的只想知道该进程是否终止时,每个进程都会跳转到前台。

教授的原始问题:

BACKJOBS:打印后台作业列表及其当前状态的命令。此功能类似于使用 tcsh 时的作业命令。每个作业的当前状态(即,正在进行或已完成)可以通过使用 waitpid 系统调用来确定(有关更多信息,请参见 man waitpid)。报告错误的调用将是那些已经完成的调用,因此它们的状态将是“完成”。未导致错误的调用将具有“进行中”状态。

4

0 回答 0