PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linuxbefehle aus einem C Programm absetzen



pir
16.11.04, 10:38
Hi,

Weiß vielleicht jemand, wie ich einen Linuxbefehl wie zB: "ls -l", oder "mount" ... aus einem C Programm aufrufen kann??

Danke, pir

jebe
16.11.04, 10:44
-> mrunix.de

derguteweka
16.11.04, 10:54
Moin,


-> mrunix.de

Oder z.b. mit dem system Kommando, also zb. so:

retval=system("ls -l");


Gruss
WK

maxxle
16.11.04, 11:46
Funktionen, die für dich in Frage kommen:

popen(), fork(), system()

pir
16.11.04, 13:47
Danke für die flotten Antwoten,

Pir

taylor
16.11.04, 13:55
Meine ersten "C-Programme" sehen auch eher aus wie compilierte Shell-Skripte. Ist wohl nicht ganz im Sinne des Erfinders.

Sym
16.11.04, 14:01
Meine ersten "C-Programme" sehen auch eher aus wie compilierte Shell-Skripte. Ist wohl nicht ganz im Sinne des Erfinders.
Aber lernen kann man dadurch ziemlich viel.

taylor
16.11.04, 15:00
Aber lernen kann man dadurch ziemlich viel.
Finde ich nicht. Shell-Skripte und Shell-Befehle konnte ich (offenbar) schon vorher. :)

Ich denke, zum C lernen gehört auch C (Bibliotheken) benutzen.

Hagbard
16.11.04, 15:11
Aber lernen kann man dadurch ziemlich viel.


Und was?

mfg

Sym
16.11.04, 15:40
Naja,

man lernt die grundlegenden Programmiereigenschaften. Und wenn man das kann, fragt man sich, wofür C und danach geht es richtig los. Aber für den Anfang finde ich das gut.

Hagbard
16.11.04, 15:53
Naja,

man lernt die grundlegenden Programmiereigenschaften. Und wenn man das kann, fragt man sich, wofür C und danach geht es richtig los. Aber für den Anfang finde ich das gut.

Hm joar stimmt schon.
Aber wieso nicht gleich richtig C programmieren?

mfg

taylor
16.11.04, 17:13
Aber wieso nicht gleich richtig C programmieren?

Weil der Einstieg ziemlich heftig ist.

Für das, was ich früher mit einem 'ls -l' und vieleicht awk und grep gemacht habe, muss ich jetzt erstmal ewig die passende C-Funktion suchen und einbinden. Schon ein ganzes Stück Arbeit.

Hagbard
16.11.04, 17:35
Weil der Einstieg ziemlich heftig ist.

Für das, was ich früher mit einem 'ls -l' und vieleicht awk und grep gemacht habe, muss ich jetzt erstmal ewig die passende C-Funktion suchen und einbinden. Schon ein ganzes Stück Arbeit.

Naja. imho ist c sowieso nicht die nonplus-ultra sprache wenn es nicht grade um low-level geht.
Solche funktionen erreichst du mit c++, Java und konsorten schneller.

taylor
16.11.04, 18:47
Auch dort muß ich mich erst durch die Dokumentation der betreffenden Bibliotheken kämpfen.

Hagbard
16.11.04, 18:55
Auch dort muß ich mich erst durch die Dokumentation der betreffenden Bibliotheken kämpfen.


musst du so oder so.
Ich hab zum bleistift relativ wenig ahnung von gawk und müsste mich auch erst einlesen.

ERGO => ohne lesen geht garnix

fuffy
17.11.04, 13:17
Hi!


Für das, was ich früher mit einem 'ls -l' und vieleicht awk und grep gemacht habe, muss ich jetzt erstmal ewig die passende C-Funktion suchen und einbinden. Schon ein ganzes Stück Arbeit.
Für sowas würde ich doch eher mit Perl als mit C anfangen. :)

Gruß
fuffy

pir
17.11.04, 14:41
Ok, die Situation ist so. C ist bei mir kein Problem und Shell scripting geht (so lala), ich bin aber nie auf die Idee gekommen, dass man direkt den C Code der Shell-Befehle "misbrauchen" kann. Gibt es da vielleicht ein Bsp. dass ich mir irgendwo anschauen könnte um eine Idee zu bekommen wie einfach :D das ist?

Pir

jebe
17.11.04, 16:01
was willst du zum blei mit "ls" erreichen ? es gibt auch c api fuer das lesen von verzeichnissen, die daten must dann halt selber ausgeben.

siehe www.pronix.de

jebe

pir
18.11.04, 06:53
Ich will Modul laden/entfernen, HD un/mounten, File auf der HD erstellen (Schreibtest). Dies soll alles automatisch ablaufen. Ich habe ein Bash-Script, das dies auch macht, aber möchte auf jeden Fall, wenn möglich, das gleiche in C erreichen.

Pir

fuffy
18.11.04, 07:01
Hi!


File auf der HD erstellen (Schreibtest)
Dafür würde ich einfach fopen (http://www.opengroup.org/onlinepubs/007908799/xsh/fopen.html) verwenden. ;)

Gruß
fuffy

Hagbard
18.11.04, 14:23
aber möchte auf jeden Fall, wenn möglich, das gleiche in C erreichen.

Dein code hat dann aber wenig mit C zu tun.

mfg

derguteweka
18.11.04, 20:40
Moin,


Ich will Modul laden/entfernen, HD un/mounten, File auf der HD erstellen (Schreibtest). Dies soll alles automatisch ablaufen. Ich habe ein Bash-Script, das dies auch macht, aber möchte auf jeden Fall, wenn möglich, das gleiche in C erreichen.

Pir

Also ich will Naegel in ein Brett einschlagen und dann will ich ein Stueckchen Blech gerade klopfen. Das hab' ich auch schon mal mit nem Hammer getan, was auch funktioniert hat, aber jetzt will ich 's auf jeden Fall mit ner Beisszange wenn moeglich probieren....
Wieso um Himmels willen, willst du so n Zeugs unbedingt in C machen? Schreib' doch lieber ein Programm, dass "Hello World" in der Konsole ausgibt ;)


Gruss
WK

gonzo_18
19.11.04, 09:54
aber so kann man gut mit fork(); üben :-D

pir
24.11.04, 10:16
Tja, wenn man nämlich selber mal versucht hat, den Nagel mit einer Beisszange einzuschlagen, fallen einem oft neue Produkte ein, die man dann zB als Beisszangenhammer bezeichnen kann. Diese sind dann universal einsetzbar, oder stellen sich als Schrot heraus. Man ist aber um eine Erfahrung reicher und darum geht es ja. :cool:

Außerdem gibt es schon genug "Hello World" Programme auf der Welt

Gruß Pir

derguteweka
24.11.04, 11:02
Moin,

Ich seh', du weisst was du tust - denn viel Erfolg beim Beisszangenhaemmern :D

Gruss
WK