Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
- int main(void) {
- pid_t ident;
- int pf[2], fp[2]; // les deux descripteurs associés au tube
- char message[100]; // une chaîne pour stocker les messages lus dans le tube
- if (pipe(pf) != 0) { // Création du tube
- perror("pipe");
- return EXIT_FAILURE;
- }
- if (pipe(fp) != 0) { // Création du tube
- perror("pipe");
- return EXIT_FAILURE;
- }
- ident = fork(); // Création du fils
- switch (ident) {
- case -1 :
- perror("fork");
- return EXIT_FAILURE; //demi_tube fermer a chaque fois
- case 0 :
- printf("Fils : je lis le message de mon pere\n");
- close(pf[1]);
- read(pf[0], message, 100);
- printf("FILS : j'ai lu '%s'\n", message);
- close(fp[0]);
- write(fp[1], "Salut...", 9);
- default :
- //pere
- //femeture des demi tubes non utilisé
- close(pf2[0]); close(fp2[1]);
- close(f2f1[0]); close(f2f1[1]);
- strcpy(message,"Au nom du PERE");
- printf("PEre : je lance \"%s\" dans le tourniquet\n,message);
- write(pf2[1],message,strlen(message));
- printf("PEre : je lis ce qui sort du tourniquet\n");
- nBytes=read(f1p[0],message,100);
- message[nBytes]='\0';
- printf("Pere : j'ai lu le '%s'\n",message);
- close(pf[1]);
- close(f1p[0]);
- close(pf2[1]);
- return EXIT_SUCCESS;
- }
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement