[semaphore] interaction entre 2 programmes sous linux
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:
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:
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