bonjour à tous,

je souhaiterai faire que dans un programme déjà exécuté lancer un thread par l'intermédiaire d'un autre programe. j'ai déjà sus le faire avec 1 sémaphore sous windows m'ai j'arrive pas la reproduire sous linux

voici le code du programe 1
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
25
26
27
28
29
30
#include <pthread.h>
#include <sys/sem.h>
#include <sys/wait.h>
#include <semaphore.h>
#include <iostream>
 
using namespace std;
sem_t mutex;
 
void* affichage (void* name) {
        int i = 0;
        for(;;)
        {
                sem_wait(&mutex); /* prologue */
                cout << "salut "<<i<<endl;
                i++;
//              sem_post(&mutex); /* epilogue */
        }
}
 
int main(int argc,char *argv[]){
        pthread_t filsA;
        void* AA;
        sem_init(&mutex,0 , 1);
//      sem_wait(&mutex);
        pthread_create(&filsA, NULL, affichage, AA);
        pthread_join(filsA, NULL);
        cout <<"Fin du pere\n"  ;
        return 0;
}
voici le coded du programe qui va débloque la thread affichage
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
#include <pthread.h>
#include <semaphore.h>
#include <iostream>
 
using namespace std;
sem_t mutex;
 
 
int main(int argc,char *argv[]){
 
        sem_init(&mutex,0 , 1);
        sem_post(&mutex);
        cout <<"Fin du pere\n"  ;
        return 0;
}

je sais pas pour quoi sa fonctionne pas.
quelqu'un serait-il m'aider?

merci d'avance

lermit