Heim > Artikel > Backend-Entwicklung > Wie erhalte ich Benutzer-Home-Verzeichnisse in Linux-C-Programmen, ohne auf Umgebungsvariablen angewiesen zu sein?
Erhalten von Benutzer-Home-Verzeichnissen unter Linux
Bei der Entwicklung von C-Programmen, die unter Linux laufen, kann es notwendig sein, das Home-Verzeichnis des Benutzers abzurufen. Um dies zu erreichen, ohne auf die HOME-Umgebungsvariable angewiesen zu sein, steht ein zuverlässigerer Ansatz zur Verfügung.
Um das Home-Verzeichnis unter Linux zu erhalten, können die folgenden Schritte unternommen werden:
1. Benutzer-ID ermitteln:
Verwenden Sie die Funktion getuid(), um die Benutzer-ID des aktuellen Benutzers zu erhalten.
2. Passworteintrag abrufen:
Mit der Funktion getpwuid() können Sie den Passworteintrag abrufen, der der erhaltenen Benutzer-ID zugeordnet ist. Dieser Eintrag kapselt das Home-Verzeichnis.
Beispielcode:
<code class="c++">#include <unistd.h> #include <sys/types.h> #include <pwd.h> struct passwd *pw = getpwuid(getuid()); const char *homedir = pw->pw_dir;</code>
Es ist wichtig zu beachten, dass Sie stattdessen die Funktion getpwuid_r verwenden sollten, wenn Ihre Anwendung Threading verwendet Thread-Sicherheit.
Zugriff auf das Root-Home-Verzeichnis:
Das Root-Home-Verzeichnis befindet sich normalerweise unter /root. Wenn Ihr Programm unter dem Root-Benutzer ausgeführt wird, ist das Erstellen von Dateien oder Ordnern in diesem Verzeichnis akzeptabel. Es ist jedoch ratsam, Vorsicht walten zu lassen und solche Maßnahmen auf wesentliche Aufgaben zu beschränken.
Das obige ist der detaillierte Inhalt vonWie erhalte ich Benutzer-Home-Verzeichnisse in Linux-C-Programmen, ohne auf Umgebungsvariablen angewiesen zu sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!