uruchominie polecenia powloki z poziomu C

0

Witam,
Potrzebuje w unixie z poziomu programu C uruchomiając polecenie powłoki (ps) i zapamiętać jego wynik w programie. Wywołanie jakiegoś polecenia, przykładowo:
execl("/bin/ls", "ls", "-l", NULL);
Wyświetla mi wynik działania i wyskakuje z programu (nie wykonuje dalszych polecen). Jak wynik zapisac w programie tak aby program dzialal dalej?

Prosze o pomoc

0

spróbuj system("jakieśpolecenie ");

0

@winerfresh bardzo odkrywcze, a jak chcesz potem wczytać sobie do programu wynik tej komendy?
Bo system() zwróci ci tylko int w zależności od tego czy wykonał się poprawnie czy nie.
A musisz to w C napisac? Prościej by było skrypt w bashu machnąć ;]

//quetz: przemysl: system("ls -al > plik.txt"); fopen("plik.txt")..

0

Jeśli musi być C(++) to odsyłam do ( może to i grzech ) Forum.Ubuntu.pl

0

A może by tak po prostu popen?

0

Dzieki Panowie.

deus napisał(a)

A może by tak po prostu popen?

Popen sie sprawdzilo, kombinacje z przekierowaniem wyjscia itp nic mi nie daly. Przykladowy kod programu:

  #include <stdio.h>
       #include <stdlib.h>
       main()
       {
              char *cmd = "/usr/bin/ls *.c";
              char buf[BUFSIZ];
              FILE *ptr;

              if ((ptr = popen(cmd, "r")) != NULL)
                      while (fgets(buf, BUFSIZ, ptr) != NULL)
                              (void) printf("%s", buf);
                      (void) pclose(ptr);
              return 0;
       }

1 użytkowników online, w tym zalogowanych: 0, gości: 1