この質問は簡単なものです:)。srand()同じシーケンスの乱数が生成されるのを防ぐために、乱数ジェネレーターをシードするために使用されることを知っています。getpid()同様に、 「呼び出したプロセスのプロセス ID を返さなければならない」ということも知っています。
( http://pubs.opengroup.org/onlinepubs/009695399/functions/getpid.html )
私のプログラム (プロデューサーとコンシューマーが共有メモリを介して通信するプログラム) を実行するたびにプロセス ID が最終的に異なるため、PID も異なり、完全なシードが得られます。乱数の範囲を設定しましたrand() % (100-1) + 1。
srand(getpid())乱数は特定の形式で配信されますか?
完全を期すために、私の問い合わせに関連するコードのセクションを次に示します。
srand(getpid());
while(x == 0)
{      
        if(*randNum == 101)
        {      
                *randNum = rand() % (100 - 1) + 1;
                *pidNum = getpid();
                printf("priority: %d Process ID: %d \n", *randNum, *pidNum);
                x = 1;
        }   
        else
        {      
                *randNum++;
                *pidNum++;
        }   
}