exec bzw. ähnliches "shell ausgabe erfassen"



  • Hi !
    Ich habe mich gefragt, wie man wohl am besten ein externes Programm startet und z.B dessen Ausgabe in der shell erfassen kann. Leider fehlen mir in diesem bereich glaube ich etliche Kentnisse...

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    int main(int argc , char *argv[])
    {
      //system ist kacke:
      printf("system()\n");
      system("ls -al >test.txt");
    
      //execl Beendet aktuellen Prozess
      printf("execl()\n");
      execl("/bin/ls","","-al",NULL);
    
      printf("Beispiel beendet...\n");
      return 0;
    }
    

    Mein erster Ansatz ist die ausgabe in eine Textdatei zu schreiben und diese dann auszuwerten. (gefällt mir nicht)

    system() mag ich irgendwie nicht verwenden.

    exec() lässt mich in meinem programm nicht weiter arbeiten...

    Was für Möglichkeiten habe ich noch ?

    Ich würde mich über jedliche Hilfe freuen !


  • Mod

    pipe, fork, exec. Oder in einfach verwendbarer Form: popen und pclose.



  • Danke ! das hat ungemein weiter geholfen..

    Dieser hier aber auch: http://www.c-plusplus.net/forum/305816

    hätte irgendwie nicht damit gerechnet das die antwort 6 threads weiter unten steht ^^

    Mfg McMorf


Anmelden zum Antworten