PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl an System


LordPsycho
10.08.2003, 13:22
Ich möchte einen Befehl an System geben so das das System es für mich ausführt. Unter Windows muste ich dazu windows.h einbinden und dann konnte ich die Methode system( const char* ) aufrufen, aber wie mach ich das unter Linux?


Jack
10.08.2003, 13:26
#include <stdlib.h>

system(...)


Der system Aufruf ist nicht in der windows.h spezifiziert, sondern in der stdlib.h. Die sollte es auf allen Plattformen geben.

lenix
22.08.2003, 14:11
Hi,

In der Regel findet man solche Informationen auch ueber 'man 3 system' insofern die entsprechenden Dokumentationen mit installiert wurden.

SYSTEM(3) FreeBSD Library Functions Manual SYSTEM(3)

NAME
system -- pass a command to the shell

LIBRARY
Standard C Library (libc, -lc)

SYNOPSIS
#include <stdlib.h>

int
system(const char *string);

Ansonsten hilft dir in der Regel eine Suche (z.B. per 'grep') in den Include-Verzeichnissen des Systems, das sind z.B. typischerweise /usr/include, /usr/local/include, usw.

<lenix@shlaptop ~> grep -r '^.* system *([^)]*); *$' /usr/include /usr/local/include
/usr/include/stdlib.h:int system(const char *);
<lenix@shlaptop ~>

MfG, lenix

LordPsycho
22.08.2003, 14:32
@lenix

Ich arbeite mit Linux nun seit einem halben Jahr, da hab ich schon viele sachen gesehen wie man suchen kann aber sowas würde mir niemals einfallen :p

lenix
22.08.2003, 20:48
Jo, Sorry, die Regexp ist im Grunde genommen grottenschlecht, aber war gerade auf der Arbeit und hatte keine Zeit mir was wirklich gutes auszudenken..

Dabei sollte ich es doch nach mehrfachen Lesens von 'OReilly - Regulaere Ausdruecke' besser wissen ;-)

Naja, zumindest funktioniert es so irgendwie, ich gucke meistens eh nur mit 'man' nach, unter FreeBSD ist die Dev-Doc glaube ich sogar per default mit installiert.

MfG, lenix