Maison > Article > développement back-end > Comment obtenir les répertoires personnels des utilisateurs dans les programmes Linux C sans s'appuyer sur des variables d'environnement ?
Obtention des répertoires personnels des utilisateurs sous Linux
Lors du développement de programmes C exécutés sous Linux, il peut être nécessaire de récupérer le répertoire personnel de l'utilisateur. Pour y parvenir sans recourir à la variable d'environnement HOME, une approche plus fiable est disponible.
Pour obtenir le répertoire personnel sous Linux, les étapes suivantes peuvent être suivies :
1. Déterminer l'ID utilisateur :
Utilisez la fonction getuid() pour obtenir l'ID utilisateur de l'utilisateur actuel.
2. Récupérer l'entrée du mot de passe :
À l'aide de la fonction getpwuid(), vous pouvez acquérir l'entrée du mot de passe associée à l'ID utilisateur obtenu. Cette entrée encapsule le répertoire personnel.
Exemple de code :
<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>
Il est important de noter que si votre application utilise le threading, vous devez plutôt utiliser la fonction getpwuid_r pour sécurité des threads.
Accès au répertoire de base racine :
Le répertoire de base racine se trouve généralement dans /root. Si votre programme fonctionne sous l'utilisateur root, la création de fichiers ou de dossiers dans ce répertoire est acceptable. Il est toutefois conseillé de faire preuve de prudence et de limiter ces actions aux tâches essentielles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!