Nowe posty

Autor Wątek: łącza nienazwane  (Przeczytany 2460 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 3
    • Zobacz profil
łącza nienazwane
« dnia: 2012-01-03, 23:07:57 »
Napisalem program ktory powinien realizować następujący potok
 "finger | cut -d' ' -f1"
Niestety program dochodzi tylko do finger.
Pomoże ktoś?
#include 
#include
#include
#include

int main(int argc, char* argv[]){
        int pdesk[2];

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

        switch(fork())
        {
         case -1:
          perror("blad tworzenia procesu");
          exit(1);
         case 0:
          dup2(pdesk[1], 1);
          execvp("finger", argv);
          perror("blad uruchomienia programu ls");
          exit(1);
         default:
         { //proc macierzysty

          close(pdesk[1]);
          dup2(pdesk[0], 0);
          execlp("cut", "-d' '", "-f1", 0);
          perror("Uruchomienie cut");
          exit(1);
         }
        }
return 0;
}

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
łącza nienazwane
« Odpowiedź #1 dnia: 2012-01-04, 00:08:54 »
execlp("cut", [b]"cut", "-d "[/b], "-f1", NULL);

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 3
    • Zobacz profil
łącza nienazwane
« Odpowiedź #2 dnia: 2012-01-04, 00:28:10 »
Dzięki