Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <errno.h>
  3. #include <fcntl.h>
  4. #include <stdlib.h>
  5. #include <unistd.h>
  6.  
  7. int main() {
  8.         int pdesk[2][2];
  9.  
  10.         pipe(pdesk[0]);
  11.  
  12.         if(fork() == 0) {
  13.         //dziecko 1
  14.                 //write to first pipe
  15.                 close(pdesk[0][0]);
  16.                 dup2(pdesk[0][1], STDOUT_FILENO);       //kopia deskryptora pliku
  17.                 close(pdesk[0][1]);
  18.                 execlp("who", "who", NULL);
  19.         }
  20.         pipe(pdesk[1]);
  21.         if(fork() == 0) {
  22.         //dziecko 2
  23.                 //read from first pipe
  24.                 close(pdesk[0][1]);
  25.                 dup2(pdesk[0][0], STDIN_FILENO);
  26.                 close(pdesk[0][0]);
  27.                 //write to second pipe
  28.                 close(pdesk[1][0]);
  29.                 dup2(pdesk[1][1], STDOUT_FILENO);
  30.                 close(pdesk[1][1]);
  31.                 execlp("head", "head", NULL);
  32.         }
  33.         //rodzic
  34.         //close first pipe
  35.         close(pdesk[0][0]);
  36.         close(pdesk[0][1]);
  37.         //read from second pipe
  38.         close(pdesk[1][1]);
  39.         dup2(pdesk[1][0], STDIN_FILENO);
  40.         return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement