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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#define __DARWIN__
#define _POSIX_SEMAPHORES
#define PERMISSION S_IRUSR | S_IWUSR
#include <iostream>
#include <semaphore.h>
#include <errno.h>
#include "A.h"
#include "C.h"
using namespace std;
static sem_t *A_fin;
static sem_t *C_fin;
static sem_t *A_debut;
static sem_t *C_debut;
void print_sem(void)
{
int val1, val2, val3, val4;
val1 = val2 = val3 = val4 = 1;
sem_getvalue(A_fin, &val1);
sem_getvalue(C_fin, &val2);
sem_getvalue(A_debut, &val3);
sem_getvalue(C_debut, &val4);
printf ("%d %d %d %d\n", val1, val2, val3, val4);
}
int main (int argc, char * const argv[])
{
printf("VM :%d\n", SEM_VALUE_MAX);
#ifdef __LINUX__
if(sem_init(A_debut, 0, 0)==-1)cout << "Err On Ad %d\n" << errno << endl;
if(sem_init(C_debut, 0, 0)==-1)cout << "Err On Cd %d\n" << errno << endl;
if(sem_init(C_fin, 0, 0)==-1)cout << "Err On Cf %d\n" << errno << endl;
if(sem_init(A_fin, 0, 0)==-1)cout << "Err On Af %d\n" << errno << endl;
#endif
#ifdef __DARWIN__
A_debut = sem_open("../../A_debut", O_CREAT, PERMISSION, 0);
C_debut = sem_open("../../C_debut", O_CREAT, PERMISSION, 0);
A_fin = sem_open("../../A_fin", O_CREAT, PERMISSION, 0);
C_fin = sem_open("../../A_fin", O_CREAT, PERMISSION, 0);
if((int)A_debut == SEM_FAILED) cout << "Erreur A_debut : " << errno << endl;
if((int)C_debut == SEM_FAILED) cout << "Erreur C_debut : " << errno << endl;
if((int)A_fin == SEM_FAILED) cout << "Erreur A_fin : " << errno << endl;
if((int)C_fin == SEM_FAILED) cout << "Erreur C_fin : " << errno << endl;
#endif
cout << "Sémaphore initialisés" << endl; |
Partager