Bonjour,
Voici l'en-tête de la fonction pthread_create :
	
	int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg);
 Le dernier argument, void * arg,  sert à passer l'argument dans ta fonction. Pour passer plusieurs arguments, utilise un pointeur sur structure.
Si tu dois passer en paramètre le argv[1] correspondant aux arguments du main, ton code pourrait ressembler à ça :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | #include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
 
void* maFonction(void*);
 
int main(int argc, char *argv[])
{
    pthread_t thread;// On crée un thread
 
    /* passe l'argument à pthread_create */
    pthread_create (&thread, NULL, maFonction, (void *)argv[1]);// Permet d'exécuter le fonction maFonction en parallèle
 
    // Attend la fin tu thread créé
    pthread_join(thread, NULL);
    return 0;
}
 
 
void* maFonction(void*)
{
 //je doit effectuer le traitement sur l'argument ici
} | 
 J'espère avoir répondu à ta question.
						
					
Partager