Linux - Befehle in C



  • Moin Leute!

    Gibt es irgendeine Möglichkeit, dass ich in C das Ausführen von Shellbefehlen einbinden kann. Zum Beispiel, dass er mir bei jedem Programmstart den Bildschirm mit "clear" löscht, um das Programm etwas übersichtlicher ausehen zu lassen.



  • Wenn du den Bildschirm löschen willst, würde ich (n)curses empfehlen. Sonst kannst du system oder fork/exec verwenden.



  • Shellkommandos kannst du mit man: system(3) ausführen, dass ist aber langsam und unsicher (siehe C++ FAQ)! Du solltest so etwas wie clear lieber direkt benutzen!

    Wobei clear und co deswegen schlecht ist, weil es dem UNIX KISS Prinzip entgegen steuert!



  • Timelimelim schrieb:

    Gibt es irgendeine Möglichkeit, dass ich in C das Ausführen von Shellbefehlen einbinden kann.

    Das geht mit der Funktion system(), also beispielsweise

    system("ls -lf");
    

    Timelimelim schrieb:

    Zum Beispiel, dass er mir bei jedem Programmstart den Bildschirm mit "clear" löscht, um das Programm etwas übersichtlicher ausehen zu lassen.

    Das geht am besten mit dem Steuerzeichen '\f', also

    printf("\f");
    fflush(stdout);
    

    Das geht aber nicht in jedem Terminalfenster (hängt von der Terminalemulation ab).

    Martin



  • Hm, den Bildschirm löschen sollten eigentlich nur Programme im Rogue-Style, wenn das ein normales CLI-Programm macht, nervt das fürchterlich.



  • Martin G schrieb:

    Das geht am besten mit dem Steuerzeichen '\f', also

    printf("\f");
    fflush(stdout);
    

    Das geht aber nicht in jedem Terminalfenster (hängt von der Terminalemulation ab).

    ich glaube, das geht höchstens auf einem drucker...
    Am besten geht das mit:

    printf("\033[2J");
    

    Hängt aber letztlich auch von der Terminalemulation ab.


Anmelden zum Antworten