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;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 /* -- Routine du thread -- */ void *ecriture(void *p) { paramsThread params = p; printf("Contenu de la variable: %s",params.fichier); //TEST QUI NE MARCHE PAS //..... }
Le problème est que je n'arrive pas à retrouver mes variables champ, valeur et fichier... savez-vous pourquoi ?
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); }
Partager