Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <errno.h>
- #include <fcntl.h>
- #include <stdlib.h>
- #include <unistd.h>
- int main() {
- int pdesk[2][2];
- pipe(pdesk[0]);
- if(fork() == 0) {
- //dziecko 1
- //write to first pipe
- close(pdesk[0][0]);
- dup2(pdesk[0][1], STDOUT_FILENO); //kopia deskryptora pliku
- close(pdesk[0][1]);
- execlp("who", "who", NULL);
- }
- pipe(pdesk[1]);
- if(fork() == 0) {
- //dziecko 2
- //read from first pipe
- close(pdesk[0][1]);
- dup2(pdesk[0][0], STDIN_FILENO);
- close(pdesk[0][0]);
- //write to second pipe
- close(pdesk[1][0]);
- dup2(pdesk[1][1], STDOUT_FILENO);
- close(pdesk[1][1]);
- execlp("head", "head", NULL);
- }
- //rodzic
- //close first pipe
- close(pdesk[0][0]);
- close(pdesk[0][1]);
- //read from second pipe
- close(pdesk[1][1]);
- dup2(pdesk[1][0], STDIN_FILENO);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement