Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <sys/types.h>
- #include <stdbool.h>
- int p1[2];
- int p2[2];
- int p3[2];
- void son1() {
- int tmp = 1;
- for (int i = 0; i < 100; i++) {
- int id;
- // puts("kokokokokoko1");
- read(p1[0], &id, sizeof(id));
- printf("%s\n", "*****");
- fflush(stdout);
- if (id == 2)
- write(p3[1], &tmp, sizeof(tmp));
- if (id == 3)
- write(p2[1], &tmp, sizeof(tmp));
- }
- exit(0);
- }
- void son2() {
- int tmp = 2;
- for (int i = 0; i < 100; i++) {
- int id;
- read(p2[0], &id, sizeof(id));
- printf("%s\n", "***");
- fflush(stdout);
- write(p1[1], &tmp, sizeof(tmp));
- }
- exit(0);
- }
- void son3() {
- int tmp = 3;
- for (int i = 0; i < 100; i++) {
- int id;
- read(p3[0], &id, sizeof(id));
- printf("%s\n", "**");
- fflush(stdout);
- write(p1[1], &tmp, sizeof(tmp));
- }
- exit(0);
- }
- int main() {
- int p1_desk = pipe(p1);
- int p2_desk = pipe(p2);
- int p3_desk = pipe(p3);
- int tmp = 2;
- write(p1[1], &tmp, sizeof(tmp));
- pid_t fDesc1 = fork();
- if (fDesc1 == 0)
- son1();
- pid_t fDesc2 = fork();
- if (fDesc2 == 0)
- son2();
- // pid_t fDesc3 = fork();
- // if (fDesc3 == 0)
- son3();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement