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.