Untitled
unknown
plain_text
2 years ago
977 B
8
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