2016-05-05 10 views
0

Ich bin eine Art Neuling in der Programmierung und ich fragte mich nur, ob ich mit dem Befehl system() zwischen Ordnern wechseln und dort arbeiten kann, so wie ich es tun kann, wenn ich die Befehle im Terminal selbst eintippe.Kann ich in Unterverzeichnissen mit dem Befehl system() arbeiten?

Es ist nicht so ein sehr wichtiges Problem, aber es wäre schön zu wissen.

+1

Warum nicht ['chdir'] (http://man7.org/linux/man-pages/man2/chdir.2.html) verwenden? –

+0

Nein. Warum stellst du diese Frage? Warum nicht "Wie kann ich Ordner wechseln"? –

Antwort

3

Sie können möglicherweise Folgendes tun: system ("cd /path/to/dir; pwd");. Was ist, trennen Sie die Befehle über ein Semikolon. Wenn die Funktion zurückgegeben wird, ist die Verzeichnisänderung nicht mehr anwendbar. Dies liegt daran, dass der Befehl system einen neuen Prozess zum Ausführen aller in den Argumenten enthaltenen Befehle erzeugt. Sobald der Prozess beendet ist, sind die Dinge verloren. Daher gilt diese Verzeichnisänderung für den Prozess, der system spawns, und nicht für das Arbeitsverzeichnis des Programms, das system ruft.

Obwohl, je nachdem, was Ihr Zweck ist, würde ich empfehlen, fork, exec Familie und chdir in einer Kombination zu sehen.

+0

Vielen Dank für Ihre schnelle Hilfe. – Junkpilepunk

Verwandte Themen