1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Externes Programm aus C Script starten

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Nobbi, 05.05.09.

  1. Nobbi

    Nobbi Empire

    Dabei seit:
    30.12.06
    Beiträge:
    88
    Guten abend zusammen,

    ich möchte ein Programm (hier Gnuplot) aus einem C-Script starten, in dem Werte berechnet werden. Unter Windows geht das mit Shell "...." ´. Gibt es auch einen Befehl beim Mac der so etwas kann?

    Schöne Grüße
    Nobbi
     
  2. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Was meinst Du mit "C-Script"? Ein Script? Ein C-Programm?

    Wir entscheiden uns mal für C-Program. Hier kannst Du (wie bei, schauder, Windows) system (3) verwenden. Damit bekommst Du aber nur den "Result Code" zurück.

    Falls Du andere Ausgaben des Programms brauchst, ist popen (3) das Mittel der Wahl

    Alex
     
  3. Nobbi

    Nobbi Empire

    Dabei seit:
    30.12.06
    Beiträge:
    88
    Ja ein C-Programm,

    ich will eigentlich nur Gnuplot '*.sav'
    starten, mit den beiden Befehlen bekomme ich nur Fehlermeldungen.

    Gruss
     
  4. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Meine Glaskugel ist leider immer noch in Reparatur, daher muss ich Dich bitte, die Fehlermeldungen doch einmal zu posten.

    Grundsätzlich kann man aber sagen, dass man sich auf globbing (also auf den '*') in nicht-interaktiven Shells (und so eine bekommst Du hier) nicht verlassen kann.
    Siehe auch: http://promberger.info/linux/2009/0...nd-find-regular-expressions-in-shell-scripts/

    Alex
     
  5. Nobbi

    Nobbi Empire

    Dabei seit:
    30.12.06
    Beiträge:
    88
    ich hatte es so verstanden, dass ich system(gnuplot 'praktikum.sav') in meinen C-Code schreibe und er das Programm dann ausführt (analog zu dem Windows Befehl). Stattdessen meckert er 'Gnuplot was not declared in that scope' und 'Character or constant too long for this type'.
    Das in der Klammer hinter system wäre das, was ich so direkt ins Terminal tippen würde um das Programm "manuell" zu starten

    Gruss
     
  6. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Da hat er ja auch völlig recht. system (3) erwartet einen C-String, also system ("echo foo");

    Alex
     

Diese Seite empfehlen