所以我想创建一个进程并让它运行一段时间,然后再对其调用 SIGINT 并杀死它。
所以我所做的是创建一个struct pcb(进程控制 block ),当我运行这个进程时我设置
mypcb->status = RUN //RUN would just be defined as 0, SUSPEND as 1, etc
基本上我有一个管理我所有流程的函数,并且我可能在这个函数中有类似的东西
startprocess(processnum);
wait 10 seconds
killprocess(processnum);
然后在我的startprocess函数中我调用fork,并且在子进程中(当fork() == 0时),我想让这个进程无限期地运行。我知道这可能可以通过使用 execvp 来完成,但我不想将上下文切换到另一个 exe 文件,我只想保持进程运行,或者至少让子进程看起来仍然存在,以便我可以返回并在我的killprocess函数中对pid调用SIGINT。
请注意,我将每个进程的pid存储在
中mypcb->pid
所以我不需要传递任何东西,我只需要一种方法来保持进程运行,这样我就可以返回并杀死它。
希望我的问题有意义,基本上我只是想知道如何在不执行任何操作的情况下保持进程运行,以便稍后可以将其终止。
谢谢!
最佳答案
听起来你想做的就是让一个进程永远运行而不做任何特别的事情(在这种情况下,问题的其余部分是无关紧要的)。
你可以简单地使用类似的东西:
while(1)
{
/* no code in between the {} */
}
这永远不会有任何作用。
关于c - 如何模拟进程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29550944/