function zum wechseln ins stammverzeichnis
-
Kann mir jemand helfen ich zuche eine function die es ermöglicht ins Stammverzeichnes oder Homeverzeichnis zu springen.
-----------------
mfg klickdas
-
Versuche
cd /
um zum Stammverzeichnis zu kommen und
cd
um ins Homedir zu wechseln
-
chdir(..)
-
char befehl[150];
strcpy(befehl,"cd ");
system(befehl);Dieses funktioniert nich, weiß leider nicht warum.
-
system macht einen einigen Prozess auf, führt da das Kommando aus und beendet den Prozess dann wieder. Dein eigener Prozess bleibt davon unberührt. Daher ist chdir der richtige Weg
-
man chdir
system() sollte wirklich nur in Notfällen verwendet werden!
(Und zu Deiner Information: mit einem blanken "cd" kommst Du immer in Dein Homedirectory, auch per system()!edit:
#include <unistd.h> #include <stdio.h> int main(void) { if (!chdir("/")) printf("chdir(); succeeded!"); return 0; }
[ Dieser Beitrag wurde am 23.01.2003 um 10:10 Uhr von nman editiert. ]
-
DANK AN EUCH ALLE
------------------
mfg klickdas
-
-
chdir( "~" )
Und du landest im Userverzeichniss
-
Nein, '~' wird von der shell ausgewertet, aber nicht generell vom Betriebssystem.
Fürs Auslesen des Homeverzeichnis gabs hier mal nen Beitrag. getenv("HOME") oder über /etc/passwd.
/* edit: fehler bereinigt */
[ Dieser Beitrag wurde am 23.01.2003 um 23:10 Uhr von DrGreenthumb editiert. ]
-
$HOME hat aber das Problem, dass jeder User das vorher beliebig ändern kann.
-
Ja, hattte damals auch jemand erwähnt und deshalb auf /etc/passwd hingewiesen.
Aber wo genau, ist das jetzt schlimm?
Wenn der Benutzer sein $HOME halt gerne in ~/blablub haben möchte statt in ~/ direkt, soll ers doch machen. Letztendlich ist die veränderbare $HOME-Variable doch zum Auslesen da...
Oder versteh ich da was falsch?
hmm.. das Programm sollte dann aber keine root-Rechte haben.
[ Dieser Beitrag wurde am 24.01.2003 um 01:29 Uhr von DrGreenthumb editiert. ]