mech666
20-01-2011, 10:14
Salve a tutti eccomi di nuovo qua con un nuovo dubbio, spero che anche oggi come ieri potete aiutarmi...sto usando la libreria "pthread" ma siccome è un pò che non uso il C sto andando in confusione sulla dichiarazione della funzione che crea i thread, eccola qui:
int pthread_create(pthread_t * thread,
const pthread_attr_t * attr,
void * (*start_routine)(void *),
void *arg);
Il problema è in come passo a thread la funzione che dovrà eseguire, quindi in:
void * (*start_routine)(void *)
Vediamo se ho capito almeno qualcosa, allora in questa parte:
* (*start_routine)
Si dice che devo passare un puntatore a funzione, e che questa può ritornare un puntatore a funzione, ma i due void come vanno interpretati???
Nella mia ignoranza credo che il primo significhi che la funzione può anche non ritornare nulla, mentre il secondo tra parentesi dovrebbe significare che posso non passare argometi alla funzione???
Vi prego datemi qualche delucidazione!!!
P.S. Riguardo ad void *arg invece cosa potete dirmi???
Grazieee!!!!!
int pthread_create(pthread_t * thread,
const pthread_attr_t * attr,
void * (*start_routine)(void *),
void *arg);
Il problema è in come passo a thread la funzione che dovrà eseguire, quindi in:
void * (*start_routine)(void *)
Vediamo se ho capito almeno qualcosa, allora in questa parte:
* (*start_routine)
Si dice che devo passare un puntatore a funzione, e che questa può ritornare un puntatore a funzione, ma i due void come vanno interpretati???
Nella mia ignoranza credo che il primo significhi che la funzione può anche non ritornare nulla, mentre il secondo tra parentesi dovrebbe significare che posso non passare argometi alla funzione???
Vi prego datemi qualche delucidazione!!!
P.S. Riguardo ad void *arg invece cosa potete dirmi???
Grazieee!!!!!