【发布时间】:2014-04-21 11:33:26
【问题描述】:
我可以将不同的任务分配给 C 中进程的 fork() 的不同实例吗?
比如:
program.c 被分叉了 3 次
int main()
{
pid_t pid;
pid = fork();
pid = fork();
pid = fork();
}
现在对于fork() 的每个实例,我想做不同的事情,我可以这样做吗?用叉子?或任何其他有利的方法? :)
PS:我正在测试实时 Linux,并想通过时间约束检查通过分叉的上下文切换的性能。
【问题讨论】:
-
fork() 和 exec() 一起工作很棒!
-
阅读
fork的手册页,它解释了如何判断您是在父进程中还是在子进程返回后,您可以使用if (pid == ...)来“做一些不同的事情” ,无论是调用不同的函数,还是exec-ing 不同的程序或其他什么... -
我想我知道一个进程是否是父进程,当它是一个子进程时,问题就解决了,我不必那样使用 fork,1 个 fork 和许多 exec 可以提供帮助出来。我想检查的是 RTOS 在处理 fork 进程时的性能。对于我发现的简短回答,不,不能将不同的任务分配给 fork 进程,您需要以不同的方式对其进行编程。 :) .
-
不要全部大写,例如在标题中。这被认为是大喊大叫。
标签: linux process fork real-time context-switch