【发布时间】:2015-05-20 14:34:21
【问题描述】:
我正在创建一个父进程,它使用 fork() 创建一个子进程,然后创建一个父进程和子进程都可以访问的共享内存块。我已经使用 WIN32 api 创建了子进程(通过创建几个 .exe 文件并运行它们,然后使用 createProcess() 函数调用它们),但我有点不确定 linux 的步骤。
我创建了一个单独的 C 文件,其中包含孩子的代码。我假设我将使用 fork 创建子进程,然后在子进程(pid == 0)中使用 exec() 命令调用另一个 C 文件?我需要先运行另一个文件吗?或者它可以只是坐在同一个目录中?
感谢任何帮助
谢谢
【问题讨论】:
-
这是一个相当基本的问题。您是否尝试过搜索答案或示例(“linux fork 示例”)?我相信你会发现它们很丰富。但是要回答您的具体问题:不,您不会在分叉后再次调用 exec 。 fork 已经创建了新进程。因此,在 (pid==0) 的情况下,您只需包含您希望孩子运行的任何代码。如果它在不同的文件中,那么只需调用实现子行为的函数。