Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.52 KB | None | 0 0
  1. int main(int argc, char *argv[]){
  2. int fd[2];
  3. if(pipe(fd)==-1) exit(1);
  4. if(fork() > 0)
  5. parent(fd, argv);
  6. else child(fd, argv);
  7. }
  8. void parent(int *fd, char *argv[]){ // A writer
  9. close(fd[0]);
  10. dup2(fd[1], 1); // 1 is the standard output
  11. close(fd[1]); // close original file descriptor
  12. execlp(argv[1], argv[1], "a.out", NULL);
  13. }
  14. void child(int *fd, char *argv[]){ // A reader
  15. close(fd[1]);
  16. dup2(fd[0], 0); // 0 is the standard input
  17. close(fd[0]); // close original file descriptor
  18. execlp(argv[2], argv[2], "-c", NULL);
  19. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement