c-funktion,um exe-datei aufzurufen?



  • Hi,

    Ich will innerhalb einer c-datei eine Anwendung aufrufen, am besten zusammen mit Parametern,
    die von dem c-code festgelegt und übergeben werden.
    Und jetzt frage ich mich ob es dafür eine c-Funktion gibt.

    Ich hab mir auch schon überlegt (💡), ob ich vielleicht eine batch-datei schreiben soll, aber das blick ich nicht so ;)(soll nicht heißen, dass ich c blicken würde 🙂 )

    mfg
    pyrogen



  • ANSI C und ISO C++ bieten dafür keine Funktionen nur dein OS!

    unter den MS Systemen funzt das hier:

    system ("programm.exe");



  • Hey du Genie!
    Das funktioniert 😃
    hat mich ehrlich gesagt ein wenig überrascht, weil beim kompilieren angezeigt wurde, dass kein Prototy für die Funktion vorhanden sei (dafür gibts bestimmt einen einleuchtenden Grund :))
    Dass es nur auf MS-Sytemen läuft stört mich jetzt erstmal nicht so.

    Jedenfalls Mucho Gracias!
    ...



  • *** schrieb:

    ANSI C und ISO C++ bieten dafür keine Funktionen nur dein OS!

    Dass es die system() Funktion nicht in ANSI-C und in ISO-C++ gibt, halte ich für ein Gerücht:

    The system() function conforms to ISO/IEC 9899:1990 (ISO C89'') and is expected to be IEEE Std 1003.2 (POSIX.2'') compatible.

    Klar ist aber, dass du mit einem system() Aufruf nicht mehr Betriebssystemunabhängig bist (sofern dies mit C oder mit C++ im Quellcode realisiert werden kann) da du (bzw. dein Programm) ein bestimmtes Programm eines bestimmten Betriebssystems aufruft. Ein system("cls"); wird unter Microsoft Windows wunderbar laufen, unter MacOSX, UNIX oder Linux wirst du allerdings nicht weit kommen, auch wenn du die cls.exe von deinem Windows rüberkopierst...

    pyrogen schrieb:

    ... dass kein Prototy für die Funktion vorhanden sei (dafür gibts bestimmt einen einleuchtenden Grund :))

    einfach den passenden Header inkludieren (#include <stdlib.h>) dann wird auch der Prototyp gefunden: int system(const char *string);



  • *** schrieb:

    Dass es die system() Funktion nicht in ANSI-C und in ISO-C++ gibt, halte ich für ein Gerücht:

    Natürlich gibt es system, aber was system mach - ist nicht definiert. Naja, eigentlich schon: nämlich es übergibt den String (den es als Argument bekommt) an das OS. Aber was das OS damit macht, ist nirgends festgelegt - deshalb ist die Antwort vom 2. Post richtig.


Anmelden zum Antworten