Heim  >  Artikel  >  Backend-Entwicklung  >  Wie rufe ich das Benutzer-Home-Verzeichnis unter Linux/Unix ab, ohne die HOME-Umgebungsvariable zu verwenden?

Wie rufe ich das Benutzer-Home-Verzeichnis unter Linux/Unix ab, ohne die HOME-Umgebungsvariable zu verwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 09:20:30795Durchsuche

How to Retrieve the User Home Directory in Linux/Unix without Using the HOME Environment Variable?

So ermitteln Sie das Benutzer-Home-Verzeichnis unter Linux/Unix

Für C-Anwendungen, die auf Linux-Systemen ausgeführt werden, kann das Home-Verzeichnis des Benutzers ohne abgerufen werden die Verwendung der HOME-Umgebungsvariablen. Hier ist eine Lösung, die dieser Anforderung entspricht:

Um das Home-Verzeichnis zu erhalten, befolgen Sie diese Schritte:

  1. Benutzer-ID erhalten: Verwenden Sie zum Abrufen die getuid-Funktion die Benutzer-ID (UID) des Benutzers, der gerade das Programm ausführt.
  2. Passworteintrag abrufen: Verwenden Sie die Funktion getpwuid, um den mit der abgerufenen UID verknüpften Passworteintrag abzurufen. Dieser Eintrag enthält die Home-Verzeichnisinformationen.

Beispielcode:

<code class="cpp">#include <unistd.h> // for getuid
#include <sys/types.h> // for getpwuid
#include <pwd.h> // for getpwuid

struct passwd *pw = getpwuid(getuid());
const char *homedir = pw->pw_dir;</code>

Jetzt speichert die Variable homedir den Pfad zum Home-Verzeichnis des Benutzers.

Hinweis für Root-Benutzer:

Wenn ein Programm als Root-Benutzer ausgeführt wird, gilt es im Allgemeinen als unsicher, Dateien oder Ordner im Verzeichnis /root zu erstellen. Stattdessen wird empfohlen, innerhalb von /root ein bestimmtes Verzeichnis zum Speichern programmbezogener Daten oder Protokolle zu erstellen.

Das obige ist der detaillierte Inhalt vonWie rufe ich das Benutzer-Home-Verzeichnis unter Linux/Unix ab, ohne die HOME-Umgebungsvariable zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn