Bonjour,
J'essaye de créer des threads dans mon application.
Voici des extraits de code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
/* --
  Structure des parametres que reçoit un thread
-- */
typedef struct
{      char *fichier;
	char c;
	char v;
} paramsThread;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
/* --
  Routine du thread
-- */
void *ecriture(void *p)
{
	paramsThread params = p;
	printf("Contenu de la variable: %s",params.fichier); //TEST QUI NE MARCHE PAS
        //.....
}
Lancement du thread [extrait de code]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
	paramsThread arguments;
        int nb_threads = 4;
	pthread_t threads[5]; // on prevoit de créer jusqu'a 5 threads
	int erreur;
        int *resultat;
 
	// on mémorise dans la structure du thread ces 2 valeurs:
 
//proviennent d'un autre endroit du programme
		arguments.c = champ;	
		arguments.v = valeur;
 
		for(n=1; n<=nb_threads; n++) // on créer les X threads
		{
			fichier = argv[n];
			arguments.fichier = argv[i+n];
 
                        erreur = pthread_create (&threads[n], NULL, ecriture, &arguments);
                        if (erreur != 0) fprintf(stderr,"Echec creation de thread: %d\n",erreur);
                        pthread_join (threads[n], (void **)&resultat);
                        printf ("Resultat: %d\n", *resultat);
                        free (resultat);
                }
Le problème est que je n'arrive pas à retrouver mes variables champ, valeur et fichier... savez-vous pourquoi ?