Pourquoi ne start_routine pour pthread_create de retour void*, et de prendre void*
- Tête de la fonction pour pthread_create
ressemble à ceci:
int pthread_create(pthread_t * thread,
const pthread_attr_t * attr,
void * (*start_routine)(void *),
void *arg);
Je comprends tout, sauf que le pointeur de fonction pour start_routine
est de la forme void* (*fpointer) (void*)
ce qui signifie qu'il prend dans un pointeur void et renvoie un pointeur void.
Le vide pointeur qu'il prend est juste un moyen de passer en argument à la start_routine, je reçois cette partie, mais je ne comprends pas pourquoi la fonction renvoie un pointeur void? Ce code sera le même avis que le vide pointeur?
Vous devez vous connecter pour publier un commentaire.
À partir de la documentation pour pthread_create:
Et pthread_exit:
Donc, si vous faites un pthread_join sur un fil, le pointeur qu'elle renvoie est passé à l'joindre le fil, vous permettant de transmettre de l'information de la mort thread à l'autre, fil de vie.
De la spec: