我在共享内存中有一个字符串 (fileContents
),它由 9 行组成:
sprintf(shared_memory, fileContents.c_str());
我想调用 fork()
来创建与行数相同的进程。这些进程将操纵每一行。但是,我不知道在调用 fork()
时从哪里开始。我看过的每个示例都只包括返回父进程和子进程的进程 ID,而不是显示进程如何或何时执行某些操作。
任何指导将不胜感激,谢谢!
最佳答案
Every example I have looked at just consists of returning the process ID of parents and child processes
这是不正确的。
父进程将获得子进程的进程 ID,但子进程将知道它是子进程,因为 fork()
返回 0。
此代码将 fork 9 次,每个 child 都做特定的工作。
for( int line = 1; line <= 9; ++line ) // *cough*
{
if ( fork() == 0 )
{
// Child process. Handle line, and exit()
}
}
关于c++ - 使用 fork() C++ 操作共享内存中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15279262/