ciao sto compilando una tesina per sistemi operativi, da consegnare tra l'altro domani!
sto bloccato perche non riesco a far funzionare i thread in linux con il compilator gcc, mi da un errore del tipo:
/tmp/ccpbhioe.o(.text+0x195):in Function 'main': undefined reference to 'pthread_create'
io credo che sia duvuto al fatto che la versione di linux non supporta i thread , ma ho anche provato
a compilarlo sulla versione live di knoppix ma mi da sempre lo stesso errore
ecco il codice: come include metto
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <stdio.h>
#include <pthread.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
#define Errore_(x) { puts(x); exit(1); }
#define KEY_SERVER 40
#define mainfile "mainfile"
#define key_sem1 50
#define key_sem2 51
#define num_client 10
ed il codice dove creo i thread è:
...
if (type == 1 || type == 3) {
ris = pthread_create(&tid, NULL, visualizza,(void*) &richiesta);
if (ris != 0)
Errore_("Errore nella crezione del thread\n");
}
else if (type == 2) {
ris = pthread_create(&tid, NULL, scrivi, (void*) &richiesta);
if (ris != 0)
Errore_("Errore nella crezione del thread\n");
...
la funzione lanciata nel thread è:
...
void * visualizza(void* richiesta) {
int ris;
struct sembuf oper;
ric_servizio ric_aux;
memcpy (&ric_aux, &richiesta, sizeof(ric_servizio));
...
per favore aiutatemi!se volete vi mando o vi posto tutto il codice sorgente.
grazie davvero a chiunque mi aiuti
aspetto vostre risposte