ubuntuusers.de

Shellbefehle im cpp-script?

Status: Gelöst | Ubuntu-Version: Kubuntu 6.10 (Edgy Eft)
Antworten |

q1w2e3r4

Avatar von q1w2e3r4

Anmeldungsdatum:
6. Dezember 2006

Beiträge: 263

Moin,
mit dem Buch C++ in 21 Tagen verschaffe ich mir gerade einen Überblick in c++. Scheint eine Interessante Sprache zu sein, werd mich auf jeden Fall länger damit befassen.

Für einen kleinen Test müsste ich kurz Wissen wie ich systembefehle(ls, cat ~/1.txt usw.) In meine sources einbinde. Habs im Buch nicht gefunden, geht dort auch eher ums Grunverständniss als um die ganzen Bibliotheken 😀

lg
q1w2e3r4

kampfpinguin

Anmeldungsdatum:
12. Dezember 2006

Beiträge: 25

Wohnort: Bielefeld

Hallo,

Du kannst hierfür die gute alte C-Funktion system() benutzen ( siehe man-page ). Es muss nur die Include-Datei cstdlib eingebunden werden, die auch sonst einiges an nostalgischer Programmierung erlaubt. ( Z.B. Zufallszahlen, atoi() usw. )

M.f.G.
Kampfpinguin

q1w2e3r4

(Themenstarter)
Avatar von q1w2e3r4

Anmeldungsdatum:
6. Dezember 2006

Beiträge: 263

Moin,
ich glaube ich hab die man´s nicht lokal. Gibts du mir ein Funktionsbeispiel für ls -alF, oder zumindest nen Tipp wie ich an die mans auf meinem PC komm?\^^

kampfpinguin

Anmeldungsdatum:
12. Dezember 2006

Beiträge: 25

Wohnort: Bielefeld

#include <cstdlib>

int main( void )
{
  system( "ls -alF" );
  return 0;
} 

system() ruft im Prinzip die bash mit dem String als Kommando auf. Siehe auch http://www.linuxmanpages.com/man3/system.3.php

M.f.G.
Kampfpinguin

q1w2e3r4

(Themenstarter)
Avatar von q1w2e3r4

Anmeldungsdatum:
6. Dezember 2006

Beiträge: 263

Hatte bloss die "" vergessen, danke dir ☺

stitch

Anmeldungsdatum:
24. August 2005

Beiträge: 291

Achtung:!:
Bitte wenn man sowas macht daran denken, dass man die externen Programme mit kompletten Pfad aufruft.

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

kampfpinguin hat geschrieben:

Du kannst hierfür die gute alte C-Funktion system() benutzen ( siehe man-page ). Es muss nur die Include-Datei cstdlib eingebunden werden, die auch sonst einiges an nostalgischer Programmierung erlaubt. ( Z.B. Zufallszahlen, atoi() usw. )

Naja, so nostalgisch ist das alles gar nicht...

kampfpinguin hat geschrieben:

system() ruft im Prinzip die bash mit dem String als Kommando auf. Siehe auch http://www.linuxmanpages.com/man3/system.3.php

Nein, es ruft die unter /bin/sh verlinkte Shell auf... Das ist bei mir die dash.

stitch hat geschrieben:

Achtung:!:
Bitte wenn man sowas macht daran denken, dass man die externen Programme mit kompletten Pfad aufruft.

Und Argumente, die vom User bezogen werden, immer brav escapen...

Antworten |