我正在寻找在Unix环境中从分叉进程创建一个充满PID的优先级列表。我找到了以下代码部分,但我不明白rand和srand(getpid())正在完成什么。如何通过使用随机数创建“优先级列表”?
我知道rand() % (100 - 1) +1;
会给你一个随机数,但是为什么代码的作者在减去它后会加1?
for(B = 0; B < noToCreate; B++)
{
pid = fork();
if(pid == -1)
{
perror("Error forking");
exit(1);
}
else if(pid > 0)
{
wait(0);
}
else
{
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++;
}
}
exit(0);
}
} /* Closes main for loop */
谢谢你们! :)