PDA

View Full Version : Creazione di thread in C? (Linux)


Player1
17-07-2004, 09:18
Qualcuno sa dirmi come posso creare dei thread in C sotto linux?
Ho provato a scrivere questo codice:



#include <pthread.h>
...
int i;
pthread_t tid;
msgRich richiesta; //msgRich è un tipo da me definito
...
void gestisciMsg(msgRich richiesta); // questa è la funzione che dovrebbe essere eseguita dal thread

main(){
...
while(1){
...
i=pthread_create(tid,NULL,gestisciMsg,(void *)richiesta);
...
}
...
}
...


Il compilatore mi da come errore:[COLOR=red] "Undefined reference to pthread_create"[\COLOR].
Cosa c'è di sbagliato?
E' possibile mettere tid nella funzione pthred_create uguale a NULL?
I parametri relativi alla funzione pthread_create sono passati in modo corretto?

GRAZIE :)

VICIUS
17-07-2004, 09:42
Sei sicuro di passare a gcc le opzioni giuste per linkare alla libreria pthread. ?
Per usare i thread devi ricordarti di usare -lpthread.

ciao ;)

Player1
17-07-2004, 09:48
Ora ci provo,grazie!

VegetaSSJ5
17-07-2004, 12:45
Originariamente inviato da VICIUS
Sei sicuro di passare a gcc le opzioni giuste per linkare alla libreria pthread. ?
Per usare i thread devi ricordarti di usare -lpthread.

ciao ;)
se non sbaglio è la stessa cosa anche per le librerie matematiche. ma queste cose una persona ignorante come me nel caso voglia compilare qualcosa, e ci sbatte la testa pensando che avesse incluso la libreria sbagliata o che ne manca una, come le fa a sapere?

VICIUS
17-07-2004, 13:06
Originariamente inviato da VegetaSSJ5
se non sbaglio è la stessa cosa anche per le librerie matematiche. ma queste cose una persona ignorante come me nel caso voglia compilare qualcosa, e ci sbatte la testa pensando che avesse incluso la libreria sbagliata o che ne manca una, come le fa a sapere?

Leggendo la documentazione :)

Spesso la prima cosa che viene spiegata e cosa passare al compilatore. Non è raro trovare esempi molto semplici. Se proprio sei disperato puoi sempre guardare i sorgenti.

ciao ;)