C 如何模拟流程运行?

C 如何模拟流程运行?,c,exec,fork,execvp,sigint,C,Exec,Fork,Execvp,Sigint,所以我想创建一个进程,在调用SIGINT并终止它之前,让它运行一段时间 所以我所做的是创建一个struct pcb进程控制块,当这个进程运行时,我设置 mypcb->status = RUN //RUN would just be defined as 0, SUSPEND as 1, etc 基本上,我有一个管理所有进程的函数,在这个函数中,我可能有 startprocess(processnum); wait 10 seconds killprocess(processnum);

所以我想创建一个进程,在调用SIGINT并终止它之前,让它运行一段时间

所以我所做的是创建一个struct pcb进程控制块,当这个进程运行时,我设置

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 {} */
}

实际上,为了避免进程占用cpu资源,while循环的内部可能应该调用usleep或nanosleep