Mit*_*est 3 c random process child-process
我正在尝试生成n个子进程,然后让每个子进程请求一个随机数量的资源.但是,每个子节点当前都请求相同数量的资源,但每次运行程序时该数字都会更改.
/* Create the appropriate number of processes */
int pid;
for(int i = 0; i < numberOfProcesses; i++){
pid = fork();
if(pid < 0){
fprintf(stderr, "Fork Failed");
exit(1);
}
else if(pid == 0){
time_t t;
srand((unsigned) time(&t));
printf("Child (%d): %d.", i+1, getpid());
/* Generate a random number [0, MAX_RESOURCES] of resources to request */
int requestNum = rand() % (MAX_RESOURCES + 1);
printf(" Requesting %d resources\n", requestNum);
exit(0);
}
else{ wait(NULL); }
}
Run Code Online (Sandbox Code Playgroud)
更新: 以下似乎已经解决了这个问题.感谢您的帮助,评论者!
time_t t;
srand((int)time(&t) % getpid());
Run Code Online (Sandbox Code Playgroud)