Этот вопрос быстрый :). Я знаю, что srand()
используется для заполнения генератора случайных чисел, чтобы предотвратить генерацию одной и той же последовательности случайных чисел. Точно так же я знаю, что getpid()
«должен вернуть идентификатор процесса вызывающего процесса».
( http://pubs.opengroup.org/onlinepubs/009695399/functions/getpid. HTMLа> )
Из-за того, что идентификатор процесса в конечном итоге отличается каждый раз, когда вы запускаете мою программу (программу, в которой производитель и потребитель общаются через общую память), 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++;
}
}