Home Verzeichnis ermitteln
-
Hallo!
Bei Linux legen eigentlich alle Programme im Home-Ordner einen Unterordner an (mit Punkt davor).
So geht es:
mkdir("/home/stefan/.MeinSpiel", ...)
Allerdings heißen ja nicht alle User stefan
.
mkdir("~/.MeinSpiel", ...)
Klappt nicht.
Wie ermittel ich den Pfad für den Home-Ordner?
-
Hallo,
das steht in der /etc/passwd.
-
-
Danke für die rasche Antwort.
Muss ich den dann bei jedem Start die passwd-Datei öffnen (die ist doch sicher auch nur roots zugänglich, außer über die speziellen Programme).
Geht das nicht einfacher?
Ich habe auch mal versucht die Sourcen der anderen Programme anzugucken, aber da find ich sowas einfach nicht.
@Xantus: Danke, als hätte ich das nicht schon versucht? Bei "home verzeichnis c++" oder "home verzeichnis finden c++" und all das habe ich jedenfalls nichts gefunden.
Okay, ich hab was, danke!
-
stefan315 schrieb:
Okay, ich hab was, danke!
ja und wie machst du es jetzt? über die umgebungsvariable?
stefan315 schrieb:
@Xantus: Danke, als hätte ich das nicht schon versucht? Bei "home verzeichnis c++" oder "home verzeichnis finden c++" und all das habe ich jedenfalls nichts gefunden.
mit deutsch kommst du in subjektiv geschätzten 70-90% der (Such-)Fälle nicht weiter, deswegen ist ja im zweiten link auch schon "linux C get home directory path" angegeben
-
man: getenv
Das einfach für $HOME aufrufen.stefan315: /etc/passwd ist idR world-readable, gibt ja Shadow-Passwords... Aber sag mal: Brauchst Du nur das Homedir für den aktuellen Benutzer oder für einen x-beliebigen User?
-
Xantus schrieb:
ja und wie machst du es jetzt? über die umgebungsvariable?
Genau.
Xantus schrieb:
mit deutsch kommst du in subjektiv geschätzten 70-90% der (Such-)Fälle nicht weiter, deswegen ist ja im zweiten link auch schon "linux C get home directory path" angegeben
Ich werde es mir merken. Das beim 2. Link schon was vorgegeben war habe ich nicht auf den ersten Blick erkannt.
nman schrieb:
man: getenv
Das einfach für $HOME aufrufen.So mache ich das jetzt auch.
nman schrieb:
stefan315: /etc/passwd ist idR world-readable, gibt ja Shadow-Passwords... Aber sag mal: Brauchst Du nur das Homedir für den aktuellen Benutzer oder für einen x-beliebigen User?
Es genügt das Verzeichnis des aktuellen Nutzers. Aber das mit der Umgebungsvariable ist eigentlich ausreichend.
Danke nochmal an alle!
-
Zum auslesen von /etc/passwd gibt es auch ein paar praktische Funktionen, wie man: getpwnam(3)