jeudi 16 avril 2020

How i must use rand_r()?

It gets me error at rand_r

undefined reference to 'rand_r'

It is my first program at c language

I must use rand_r to threads, but i don't know what to do. Please help me. Thank you

#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()
{
    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);
}



Aucun commentaire:

Enregistrer un commentaire