Как я должен использовать rand_r ()? - PullRequest
0 голосов
/ 17 апреля 2020

Я получаю сообщение об ошибке в rand_r

неопределенная ссылка на 'rand_r'

Это моя первая программа на c language

I должен использовать rand_r для потоков, но я не знаю, что делать. Пожалуйста, помогите мне. Спасибо

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include "p3160062.h"

int cook;
int oven;
int prep;
int bake;
pthread_mutex_t lock;
pthread_t thread_id[100];
unsigned int seed;
int a;

void *myThread(void *vargp)
{
    pthread_mutex_lock(&lock);
    a=rand_r(&seed)%6;
    while(a==0){
        a=rand_r(&seed)%6;
    }
    printf("a=%d\n",a);
    sleep(1);
    printf("In thread\n");
    pthread_mutex_unlock(&lock);
    return NULL;
}

int main(void)
{
    seed=1;
    int i=0;
    printf("Before Thread\n");
    for(i=0;i<100;i++){
        pthread_create(&(thread_id[i]), NULL, myThread, NULL);
        pthread_join(thread_id[i], NULL);
        seed++;
    }
    printf("After Thread\n");
    pthread_mutex_destroy(&lock);
    exit(0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...