Ist es möglich, Verzeichnisse mit dem Befehl fork zu ändern? Ohne zu viel in meinen Code habe ich folgende:Verwenden des Befehls cd mit fork in c
childpid = fork();
if (childpid >= 0)
{
if (childpid == 0)
{
ret = execvp(argv[0],argv);
exit(ret);
} else {
waitpid(childpid,&status,0);
ret = WEXITSTATUS(status);
}
}
Das oben funktioniert gut, wenn ich Eingabe grundlegenden Befehls wie ls
, pwd
, etc .. Ist es möglich, einen Weg zu implementieren, um die CD-Funktion zu verwenden, ? Ich kann den Befehl eingeben cd ..
, aber es tut nichts.
Zum Beispiel, wenn mein Programm in /Users/username/Desktop/
ist, würde Ich mag Befehle verwenden, wie cd ..
in /Users/username/
zu gehen oder in der Lage sein, gerade zu gehen, in /Users
Ich habe ein paar Sachen über chdir
gesehen, aber ich bin nicht sicher, genau wie es funktioniert/wie man es benutzt.
Das aktuelle Verzeichnis für jeden Prozess spezifisch ist. Dein Shell-Prozess befindet sich also in/Users/username/Desktop und du tippst "cd ..", und das erstellt einen neuen Prozess und der neue Prozess ändert sich zu/Users/Benutzername, aber der Shell-Prozess nicht, weil es ein anderer Prozess als der, der das Verzeichnis geändert hat. – immibis