camille/QNX-test-project — Issue #1: Part4D.c
Author: camille
Created: 2011-11-29 15:56:56+00:00
State: open

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

int main() {

struct timespec horloge;
clock_gettime(CLOCK_REALTIME,&horloge);
struct timespec horlogeInit;
clock_gettime(CLOCK_REALTIME,&horlogeInit);
int Debut= horloge.tv_sec;
int Courant= horloge.tv_sec;
int Duree=Courant-Debut;
int erreur=0;
int chid;
pid_t processusFils; //recoit l'heure et l'affiche --serveur
pid_t processusPere; //envoie l'heure a intervalle régulier --client

processusFils=getpid();
processusPere = fork();

if (processusPere) {
chid = ChannelCreate(1);
int mes=-1;
int antecedenmes=0;
antecedenmes=mes;
while (1) {
int rcvid=MsgReceive(1,&mes,sizeof(int),NULL); //on recoit un message ,arg1=chid
if (antecedenmes !=mes) {
printf("nombre de secondes :%d\n",mes);
antecedenmes=mes;
}
MsgReply(rcvid,EOK,NULL,0); // on renvoie un message vide
}
}
else {
int coid =ConnectAttach(0,getppid(),1,0,0);
Debut= horlogeInit.tv_sec;
int reponse=0;
while (1) {
Courant= horloge.tv_sec;
clock_gettime(CLOCK_REALTIME,&horloge);
Duree=Courant-Debut;
if (MsgSend(coid,&Duree,sizeof(int),&reponse,sizeof (int)) && erreur==0) {
erreur=1;
printf("Erreur durant l'envoie du message\n");
}
}
}
return 0;
}