Problemi coi semafori

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
l4uk3
Prode Principiante
Messaggi: 199
Iscrizione: giovedì 1 ottobre 2009, 21:30

Problemi coi semafori

Messaggio da l4uk3 »

Ragazzi come mai questo codice non mi viene compilato?

Codice: Seleziona tutto

#include <stdio.h>
#include <malloc.h>
#include <pthread.h>
#include <semaphore.h>

//dichiaro qui sotto mutex e semafori
pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;

sem_t semaforo_1;
sem_t semaforo_2;

sem_init(&semaforo_1,0,0);
sem_init(&semaforo_2,0,1);

void* funzioneThread1(void *parametro);
void* funzioneThread2(void *parametro);

int main() {
 pthread_t thread1, thread2;
 
 pthread_create(&thread1,NULL,&funzioneThread1,NULL);
 pthread_create(&thread2,NULL,&funzioneThread2,NULL);

 pthread_join(thread1,NULL);
 pthread_join(thread2,NULL);

 return 0;
}

void* funzioneThread1(void *parametro) { 
 while(1) {
  sem_wait(&semaforo_1);
  printf("sta lavorando il thread 1");
  sem_post(&semaforo_2);
 }
}

void* funzioneThread2(void *parametro) {
 while(1) {
  sem_wait(&semaforo_2);
  printf("sta lavorando il thread 2");
  sem_post(&semaforo_1);
 }
}
Mi sono rifatto ad un libro...ah per compilare ho usato la seguente riga

Codice: Seleziona tutto

gcc provaSemafori.c -o programma -lpthread
attendo risposte grazias mucio
einstein1969
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 931
Iscrizione: mercoledì 7 dicembre 2005, 11:52

Re: Problemi coi semafori

Messaggio da einstein1969 »

che errori ti da?
l4uk3
Prode Principiante
Messaggi: 199
Iscrizione: giovedì 1 ottobre 2009, 21:30

Re: Problemi coi semafori

Messaggio da l4uk3 »

questi

Codice: Seleziona tutto

provaSemafori.c:11: error: expected declaration specifiers or ‘...’ before ‘&’ token
provaSemafori.c:11: error: expected declaration specifiers or ‘...’ before numeric constant
provaSemafori.c:11: error: expected declaration specifiers or ‘...’ before numeric constant
provaSemafori.c:11: warning: data definition has no type or storage class
provaSemafori.c:12: error: expected declaration specifiers or ‘...’ before ‘&’ token
provaSemafori.c:12: error: expected declaration specifiers or ‘...’ before numeric constant
provaSemafori.c:12: error: expected declaration specifiers or ‘...’ before numeric constant
provaSemafori.c:12: warning: data definition has no type or storage class
l4uk3
Prode Principiante
Messaggi: 199
Iscrizione: giovedì 1 ottobre 2009, 21:30

Re: Problemi coi semafori

Messaggio da l4uk3 »

per favore ragazzi un aiutino...
Avatar utente
IppatsuMan
Prode Principiante
Messaggi: 199
Iscrizione: mercoledì 14 febbraio 2007, 1:31
Contatti:

Re: Problemi coi semafori

Messaggio da IppatsuMan »

(Nota a margine: non serve "bumpare" il proprio thread 13 minuti dopo aver aggiunto delle informazioni)

L'errore ti viene dato alle righe 11 e 12, che corrispondono a:

Codice: Seleziona tutto

sem_init(&semaforo_1,0,0);
sem_init(&semaforo_2,0,1);
Stai richiamando la funzione sem_init al di fuori del main o di qualunque altra funzione, e questo in C non è permesso. Sposta le inizializzazioni dei semafori all'interno del main.
ハッカー
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti