Untitled

 avatar
unknown
plain_text
a year ago
977 B
3
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
main(int argc, char* argv[]) {
   int pdesk[2];
   int pdesk_2[2];

   if (pipe(pdesk) == -1){
      perror("Tworzenie potoku");
      exit(1);
   }

   switch(fork()){
      case -1: // blad w tworzeniu procesu
         perror("Tworzenie procesu");
         exit(1);
      case 0: // proces potomny
         dup2(pdesk[1], 1);
         execlp("ps", "ps", "-ef", NULL);
         perror("Uruchomienie programu ls");
         exit(1);
      default: { // proces macierzysty
         close(pdesk[1]);


        pipe(pdesk_2);
         if (fork() == 0) {
            // potomny
            dup2(pdesk[0], 0);
            dup2(pdesk_2[1], 1);
            execlp("tr", "tr", "-s", " ", NULL);

            exit(0);
         }

        
         dup2(pdesk_2[0], 0);
         close(pdesk_2[1]);
         execlp("cut", "cut", "-f2", "-d", " ", 0);
         perror("Uruchomienie programu cut");
         exit(1);
      }
   }
}
Editor is loading...
Leave a Comment