Old stuff/ecole_etude_fac_de_pau/licence_3/projet_commun_se/backup13/barman.c
(Deskargatu)
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <signal.h>
#include <sys/types.h>
#include <errno.h>
#include <sys/shm.h>
#include "include/global.h"
#include "include/demandes.h"
#include "include/shm.h"
#include "include/bar_gerer_com.h"
#include "include/bar_security.h"
#include "include/bar_ordo.h"
#include "include/blonde.h"
#include "include/brune.h"
int main(int argc, char** argv)
{
pid_t pid;
// Generation de la shm pour tout le monde
if ((id_shm = gen_shm("./cle_bar",sizeof(flags)+8*sizeof(int)+sizeof(demande),(void*)&flg,1)) == -1)
{
perror("barman.c: generation de la shm");
exit(-1);
}
bzero(flg,sizeof(flg)+8*sizeof(int)+sizeof(demande));
buffer = (demande*)(flg);
if (mkfifo("tube", S_IRUSR|S_IWUSR|0777) == -1)
{
perror("mk fifo");
exit(-1);
}
printf("Loading Com ...\n");
pid = fork();
if (pid == -1) { perror("main: Fork loop error"); exit(-1); }
if(pid == 0)
{
bar_gerer_com();
return (0);
}
printf("OK\n");
printf("Loading Ordonnanceur ...\n");
pid = fork();
if (pid == -1)
{
perror("main: Fork loop error");
exit(-1);
}
else if(pid == 0)
{
bar_ordo();
return (0);
}
printf("OK\n");
printf("Loading Security ...\n");
pid = fork();
if (pid == -1)
{
perror("main: Fork loop error");
exit(-1);
}
else if(pid == 0)
{
bar_security();
return (0);
}
printf("OK\n");
while(1) { pause(); }
return 0;
}