Salve a tutti. Ho il seguente problema, sto creando un programma con i thread, mutex e condiction . il problema è che quando vado a compilare il seguente codice
#include<stdio.h>
#include<pthread.h>
#include<string.h>
#include<unistd.h>
#define DIMENSIONE_PAROLA 10
// definisco una struttura contenitore delle parole da cercare
typedef struct{
char buf[10];
int c;
}analisi;
// definisco la struttura buffer condiviso
typedef struct{
char buffer[DIMENSIONE_PAROLA];
pthread_mutex_t lock;
pthread_cond_t C;
int pieno;
}buffer;
//funzione per inizializzare la struttura buffer
void init(buffer *b){
pthread_mutex_init(&b->lock,NULL);
pthread_cond_init(&b->C,NULL);
b->pieno=0;
}
analisi parole_cercate[15];
buffer buffer_parola;
char parola[20];
void *immissione(void *data);
void *stampa(void *data);
int main (){
pthread_t th1,th2;
init(&buffer_parola);
pthread_create(&th1,NULL,immissione,NULL);
pthread_create(&th2,NULL,stampa,NULL);
pthread_join(th1,NULL);
pthread_join(th2,NULL);
void *stampa(void *data){
pthread_mutex_lock(&buffer_parola.lock);
while(&buffer_parola.pieno==0)
pthread_cond_wait(&buffer_parola.C, &buffer_parola.lock);
for(int i=0;i<10;i++){
printf("%c",&buffer_parola.buffer[i]);
}
printf("\n\n");
pthread_mutex_unlock(&buffer_parola.lock);
//&buffer_parola.pieno=0;
}
void *inserisci(void *data){
pthread_mutex_lock (&buffer_parola.lock);
printf("inserisci una parola \n");
scanf("%s",&buffer_parola.buffer);
/* risveglia eventuali thread (consumatori) sospesi */
pthread_cond_signal (&buffer_parola.C);
pthread_mutex_unlock (&buffer_parola.lock);
}
}
ottengo il seguente errore
/tmp/ccpdE5xW.o: In function `main':
condizioni.c:(.text+0xb8): undefined reference to `immissione'
condizioni.c:(.text+0xdc): undefined reference to `stampa'
collect2: ld returned 1 exit status
Vi ringrazio anticipatamente per l'aiuto.