Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION:
Les tubes sont un mecanisme de communication qui permet de realiser des communications entre
processus sous forme d’un flot continu d’octets. Un tube est materialise par deux entrees de la table
des ouvertures de fichiers,associees `a une inode en memoire geree
par un driver specifique. Une entr´ee est utilisee par les processus qui ´ecrivent dans le tube, une
entree pour les lecteurs du tube.
*************************************************************************************
********
EXERCICE 1:
#include<unistd.h>
#include<stdlib.h>
#include<sys/types.h>
#include<wait.h>
int main() {
pid_t p1,p2;
char Buffer[100];
int fd[ 2 ];
pipe(fd);
p1=fork();
close ( fd [0] );
exit(0); }
p2=fork();
close ( fd[0] );
close( fd[1] );
exit(1);
return (0);
*************************************************************************************
********
EXERCICE 2:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include <ctype.h>
int main() {
int fd[ 2 ];
pid_t p1,p2;
char message[100] ="heey there \n";
int len=strlen(message);
// crée le pipe
pipe(fd);
p1,p2=fork();
close( fd[1] ); }
close( fd[0] ); }
printf("%s", lower);
printf("%s", upper);
}
return 0;
*************************************************************************************
*******
EXERCICE 3:
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
void handle_signal ( int signal ) { printf( " signal %d.\n ", signal ) ;}
int main( ) {
pid_t p1,p2=fork();
sleep( 5 ); }
sleep(10);
return 0;
*************************************************************************************
*********
CONCLUSION:
Les resultas de ces exercices montrent que Un tube de communication, ou pipe en anglais, permet de
faire communiquer 2 commandes.
Le résultat de la commande de gauche est envoyé dans le tube et récupéré par la commande de
droite.
C'est à dirte que la sortie standard "1" de la commande de gauche est connecté directement à l'entrée
standard "0" de la commande de droite.