Salve,compilando il codice che segue ottengo il seguente errore:
error: expected expression before ‘{’ token
Avete suggerimenti?Grazie.
codice:#include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <string.h> void *prod_rtn(void *); void *cons_rtn(void *); struct data{ int a; pthread_mutex_t mutex; }; int main(){ pthread_t prod; pthread_t cons; struct data *arg; int err; if( (arg=(struct data*)malloc(sizeof(struct data))) == NULL){ perror("malloc() error"); exit(1); } arg->a=0; arg->mutex=PTHREAD_MUTEX_INITIALIZER; if( (err=pthread_create(&prod,NULL,prod_rtn,(void*)arg)) != 0){ printf("pthread_create() error %s\n",strerror(err)); exit(1); } if( (err=pthread_create(&cons,NULL,cons_rtn,(void*)arg)) != 0){ printf("pthread_create() error %s\n",strerror(err)); exit(1); } while(1){ if( arg->a > 10) break; else printf("Master thread %d\n",arg->a); } } void *prod_rtn( void* arg){ int err; struct data *args=(struct data*)arg; if( (err=pthread_mutex_lock(&(args->mutex))) != 0){ printf("pthread_mutex_lock() error %s\n",strerror(err)); exit(1); } printf("PRODUTTORE\n"); args->a=(args->a)+2; if( (err=pthread_mutex_unlock(&(args->mutex))) != 0){ printf("pthread_mutex_lock() error %s\n",strerror(err)); exit(1); } } void *cons_rtn( void* arg){ int err; struct data *args=(struct data*)arg; if( (err=pthread_mutex_lock(&(args->mutex))) != 0){ printf("pthread_mutex_lock() error %s\n",strerror(err)); exit(1); } printf("CONSUMATORE\n"); args->a=(args->a)+1; if( (err=pthread_mutex_unlock(&(args->mutex))) != 0){ printf("pthread_mutex_lock() error %s\n",strerror(err)); exit(1); } }

Rispondi quotando

