Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <sys/types.h>
  5.  
  6. int main(void) {
  7. pid_t ident;
  8. int pf[2], fp[2]; // les deux descripteurs associés au tube
  9. char message[100]; // une chaîne pour stocker les messages lus dans le tube
  10.  
  11. if (pipe(pf) != 0) { // Création du tube
  12. perror("pipe");
  13. return EXIT_FAILURE;
  14. }
  15. if (pipe(fp) != 0) { // Création du tube
  16. perror("pipe");
  17. return EXIT_FAILURE;
  18. }
  19.  
  20.  
  21. ident = fork(); // Création du fils
  22.  
  23.  
  24. switch (ident) {
  25. case -1 :
  26. perror("fork");
  27. return EXIT_FAILURE; //demi_tube fermer a chaque fois
  28. case 0 :
  29. printf("Fils : je lis le message de mon pere\n");
  30. close(pf[1]);
  31. read(pf[0], message, 100);
  32. printf("FILS : j'ai lu '%s'\n", message);
  33. close(fp[0]);
  34. write(fp[1], "Salut...", 9);
  35. default :
  36. //pere
  37. //femeture des demi tubes non utilisé
  38. close(pf2[0]); close(fp2[1]);
  39. close(f2f1[0]); close(f2f1[1]);
  40.  
  41. strcpy(message,"Au nom du PERE");
  42. printf("PEre : je lance \"%s\" dans le tourniquet\n,message);
  43. write(pf2[1],message,strlen(message));
  44. printf("PEre : je lis ce qui sort du tourniquet\n");
  45. nBytes=read(f1p[0],message,100);
  46. message[nBytes]='\0';
  47. printf("Pere : j'ai lu le '%s'\n",message);
  48. close(pf[1]);
  49. close(f1p[0]);
  50. close(pf2[1]);
  51. return EXIT_SUCCESS;
  52. }
  53.  
  54. return EXIT_SUCCESS;
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement