我正在寻找一个优先级列表,其中包含来自 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 */
多谢你们!:)