Views
2 years ago

Question 1 - Cours - École Polytechnique de Montréal

Question 1 - Cours - École Polytechnique de Montréal

INF3600 & INF2610

INF3600 & INF2610 Contrôle périodique Hiver 2007{ if (signum==SIGUSR1) printf(“capture de SIGUSR1\n”) ; }int main (void){question reqBuffer;reponse repBuffer;/* 3 */ signal(SIGUSR1,action);int req = open (“Req”, O_RDONLY);int rep = open (“Rep”, O_WRONLY);while( 1 ){int r =read (req, &reqBuffer, sizeof(question));Construire_Reponse (reqBuffer, repBuffer);/*4*/ kill(reqBuffer.pid, SIGUSR1); // réveiller un clientint w =write (rep, repBuffer, sizeof(reponse));/* 5*/ pause(); // attendre la fin de lecture de la réponse}}return 0;//programme client.c#include #include #include #include #include struct question { /* 6*/ pid_t pid; char data[1024]; }struct reponse { /*7*/ pid_t pid ; char data[1024]; }void Construire_Requete (question& q);/*8*/ void action (int signum){ if (signum==SIGUSR1) printf(“capture de SIGUSR1\n”) ; }int main (void){question reqBuffer;reponse repBuffer;/* 9 */ signal(SIGUSR1,action);Page 8 sur 10

INF3600 & INF2610 Contrôle périodique Hiver 2007int req = open (“Req”, O_WRONLY);int rep = open (“Rep”, O_RDONLY);while( 1 ){Construire_Requete (reqBuffer);int w =write (req, &reqBuffer, sizeof(question));/*10*/ pause(); // attendre la réponseint r = read (rep, &repBuffer, sizeof(reponse));/* 11*/ kill(repBuffer.pid, SIGUSR1) ; //signaler la fin de lecture}}return 0;Question 4 (4 pts) : Redirection des entrées/sorties standards ettubesint DuplexPipe (int fd[2], char* com){int p1[2], p2[2], pid ;if (pipe(p1) == -1) return -1 ;if(pipe(p2) ==-1) { close(p1[0] ; close(p1[1]) ; return -1 ; }pid =fork() ;if (pid == -1){ close(p1[0] ;close(p1[1]) ;close(p2[0] ;close(p2[1]) ;return -1 ;}if (pid==0){ if (dup2(p1[0],0)==-1) exit(1) ;if( dup2(p2[1],1) ==-1) exit(1);close(p1[0]) ;close(p1[1]) ;close(p2[0]) ;close(p2[1]) ;execv (com[0], &com[1]) ;exit(1) ;}close(p1[0]) ;close(p2[1]) ;Page 9 sur 10

teurs - Fondation de Polytechnique - École Polytechnique de Montréal
Daly-Dallaire (Vanessa Nicolai ) - École Polytechnique de Montréal
Cas d'étude #1 - Communauté métropolitaine de Montréal
École Polytechnique de Montréal - Cours - École Polytechnique de ...
École Polytechnique de Montréal Département de Génie ... - Cours
Syllabus Labo no.1 - Cours - École Polytechnique de Montréal
Laboratoire 1 - Cours - École Polytechnique de Montréal
École Polytechnique de Montréal - Cours
V - Cours - École Polytechnique de Montréal
ele6306 - Cours - École Polytechnique de Montréal
F - Cours - École Polytechnique de Montréal
PLAN DE COURS - Moodle - École Polytechnique de Montréal
École Polytechnique de Montréal Département de Génie ... - Cours
Principes d'utilisabilité - Cours - École Polytechnique de Montréal
École Polytechnique de Montréal Département de Génie ... - Cours
Cours 5.310 - Moodle - École Polytechnique de Montréal
Évaluation d'interfaces - Cours - École Polytechnique de Montréal
Échantillonnage - Cours - École Polytechnique de Montréal
CS - Moodle - École Polytechnique de Montréal
PLAN DE COURS - Cours - École Polytechnique de Montréal
École Polytechnique de Montréal Cours ELE6308, Pratique de ...
Télécharger - Cours - École Polytechnique de Montréal
Syllabus Labo. no. 3 - Cours - École Polytechnique de Montréal
Laboratoire 3 - Cours - École Polytechnique de Montréal
Syllabus Labo. no. 2 - Cours - École Polytechnique de Montréal
Séance3-TP2 - Cours - École Polytechnique de Montréal
Plan de cours - Moodle - École Polytechnique de Montréal
Syllabus Labo no. 6 - Cours - École Polytechnique de Montréal
Plan de cours - Moodle - École Polytechnique de Montréal
Complément lab 2 - Cours - École Polytechnique de Montréal