相关疑难解决方法(0)

为什么rand()在fork之后不是那么随机?

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int i =10;
    /* initialize random seed:  */
    srand(time(NULL));
    while(i--){
        if(fork()==0){
            /* initialize random seed here does not make a difference:
            srand(time(NULL));
             */
            printf("%d : %d\n",i,rand());
            return;
        }
    }
    return (EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

打印相同(每次运行时不同)数量10次 - 预计?我有一个更复杂的代码片段,每个分叉的进程依次运行 - 没有区别

c random fork

10
推荐指数
3
解决办法
7010
查看次数

标签 统计

c ×1

fork ×1

random ×1