0

fileContents在共享内存中有一个字符串 (),它由 9 行组成:

sprintf(shared_memory, fileContents.c_str());

我想呼吁fork()创建与行相同数量的进程。这些过程将操纵每一行。但是,我不知道在调用时从哪里开始fork()。我看过的每个示例都只包含返回父进程和子进程的进程 ID,而不是显示进程如何或何时执行某些操作。

任何指导将不胜感激,谢谢!

4

1 回答 1

2

我看过的每个示例都只包含返回父进程和子进程的进程 ID

这是不正确的。

父进程会得到子进程的进程id,但是子进程会知道它是子进程,因为fork()返回0。

这段代码将分叉 9 次,每个孩子都做特定的工作。

for( int line = 1; line <= 9; ++line ) // *cough*
{
    if ( fork() == 0 )
    {
        // Child process.  Handle line, and exit()
    }
}
于 2013-03-07T18:54:17.887 回答