c++ - 使用 fork() C++ 操作共享内存中的字符串

标签 c++ string fork shared-memory

我在共享内存中有一个字符串 (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/

相关文章:

c++ - 构造函数转换

c++ - 避免C++虚拟继承

c++ - 将 int 转换为 size_t

c - 如何使用C中的指针在结构类型数组中获取字符串输入

c++ - 在 Linux 中使用 fork() 创建多个子节点

C 管道标准输出到 fork

c++ - 在 Xcode 中将源附加到二进制 dylib

java - 将字符串数据 append (添加)到 Android 应用程序中的 SD 卡文本文件

c# - 修改传递给C dll的char数组c#

c - 只在一个 child 上 fork 的 Unix fork 树