Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.15 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include  <sys/types.h>
  4. #include <stdbool.h>
  5.  
  6. int p1[2];
  7. int p2[2];
  8. int p3[2];
  9.  
  10. void son1() {
  11.     int tmp = 1;
  12.     for (int i = 0; i < 100; i++) {
  13.         int id;
  14.         // puts("kokokokokoko1");
  15.         read(p1[0], &id, sizeof(id));
  16.         printf("%s\n", "*****");
  17.         fflush(stdout);
  18.         if (id == 2)
  19.             write(p3[1], &tmp, sizeof(tmp));
  20.         if (id == 3)
  21.             write(p2[1], &tmp, sizeof(tmp));
  22.     }
  23.     exit(0);
  24. }
  25.  
  26. void son2() {
  27.     int tmp = 2;
  28.     for (int i = 0; i < 100; i++) {
  29.         int id;
  30.         read(p2[0], &id, sizeof(id));
  31.         printf("%s\n", "***");
  32.         fflush(stdout);
  33.         write(p1[1], &tmp, sizeof(tmp));
  34.     }
  35.     exit(0);
  36. }
  37.  
  38. void son3() {
  39.     int tmp = 3;
  40.     for (int i = 0; i < 100; i++) {
  41.         int id;
  42.         read(p3[0], &id, sizeof(id));
  43.         printf("%s\n", "**");
  44.         fflush(stdout);
  45.         write(p1[1], &tmp, sizeof(tmp));
  46.     }
  47.     exit(0);
  48. }
  49.  
  50. int main() {
  51.     int p1_desk = pipe(p1);
  52.     int p2_desk = pipe(p2);
  53.     int p3_desk = pipe(p3);
  54.     int tmp = 2;
  55.     write(p1[1], &tmp, sizeof(tmp));
  56.     pid_t fDesc1 = fork();
  57.     if (fDesc1 == 0)
  58.         son1();
  59.     pid_t fDesc2 = fork();
  60.     if (fDesc2 == 0)
  61.         son2();
  62.     // pid_t fDesc3 = fork();
  63.     // if (fDesc3 == 0)
  64.     son3();
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement