0

fileContents共有メモリに9行で構成される文字列()があります。

sprintf(shared_memory, fileContents.c_str());

fork()ラインと同じ数のプロセスを作成するように呼びかけたいと思います。これらのプロセスは、各行を操作します。ただし、を呼び出すときにどこから始めればよいかわかりませんfork()。私が見たすべての例は、親プロセスと子プロセスのプロセスIDを返すことだけで構成されており、プロセスが何かを実行する方法やタイミングを示していません。

どんな指導もいただければ幸いです、ありがとう!

4

1 に答える 1

2

私が見たすべての例は、親と子のプロセスのプロセスIDを返すことだけで構成されています

それは正しくありません。

fork()親プロセスは子プロセスのプロセスIDを取得しますが、 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 に答える