Anzeige:
Ergebnis 1 bis 4 von 4

Thema: system() Funktion in C

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.07.2001
    Ort
    München
    Beiträge
    40

    system() Funktion in C

    Hallo zusammen,
    ich schreibe gerade einen kleinen Fingerprint für ein System. Jetzt setzt sich das aus mehreren Teilen zusammen unter anderem soll von dem C Programm ein Shellskript aufgerufen werden, dass das Linux System bestimmt. (Also Red Hat, SuSE, Debian und co).

    Dafür hätte ich gerne die Funktion system() verwendet.

    Nun meine frage, wie bekomme ich den Output der System Funktion in eine Variable?

    systeminfo = system("./determine_os ");

    systeminfo beinhaltet dann leider eine Zahl, also wohl den Returncode meines Shellskripts. Den Output schreibt system() direkt nach STDOUT.

    Danke schonmal im Voraus
    adios

    Los_Andros

  2. #2
    Registrierter Benutzer Avatar von lokicall
    Registriert seit
    17.12.2005
    Beiträge
    53
    Du willst die Ausgabe eines Programmes in einer Variable speichern.
    Ich hatte ein ähnliches Problem, das ich mit popen() gelöst hatte.

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.12.2005
    Ort
    CH - Zug
    Beiträge
    88
    Wie oben angesprochen über eine pipe zu lösen!
    /* -->
    RTFM
    <-- */

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    abgesehen von dem Tip mit popen() - warum holst Du Dir die Infos nicht direkt über eine C-Funktion?
    Code:
    man 2 uname
    zeigt Dir, wie das geht. Dann sparst Du Dir einen zusätzlichen Prozess (den system() aufmacht).

    Tipp am Rande: Wenn ich nach nützlichen Funktionen suche, dann nutze ich gern
    Code:
    apropos
    Bei Deiner Frage fiel mir "uname" ein - das liefert ja solche Infos auf der Kommandozeile; ein
    Code:
    apropos uname
    brachte dann die C-Funktion zum Vorschein.

    Jan

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •