Maison  >  Article  >  développement back-end  >  Comment déterminer de manière fiable le répertoire personnel d'un utilisateur sous Linux C ?

Comment déterminer de manière fiable le répertoire personnel d'un utilisateur sous Linux C ?

DDD
DDDoriginal
2024-10-27 10:22:03455parcourir

How to Reliably Determine a User's Home Directory in Linux C  ?

Détermination du répertoire personnel de l'utilisateur sous Linux

Dans la programmation C sous Linux, une exigence courante est d'accéder au répertoire personnel de l'utilisateur. Bien que la variable d'environnement HOME fournisse une approche simple, cet article explore une méthode plus fiable pour récupérer le répertoire personnel.

Récupération du répertoire personnel

Pour obtenir le répertoire personnel de l'utilisateur actuel, les étapes suivantes peuvent être utilisées :

  1. Déterminez l'ID utilisateur à l'aide de getuid().
  2. Utilisez getpwuid() pour récupérer l'entrée du mot de passe de l'utilisateur, qui inclut le chemin du répertoire personnel.

Voici un exemple d'extrait de code qui illustre cette approche :

<code class="c++">#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>

int main() {
  struct passwd *pw = getpwuid(getuid());

  const char *homedir = pw->pw_dir;

  // ...
}</code>

Autorisations du répertoire personnel

Si un programme s'exécute en tant que root, il n'est généralement pas conseillé de créer des fichiers ou des dossiers dans le répertoire racine (/root). En effet, l'utilisateur root dispose d'un accès illimité au système et ne doit créer que les fichiers ou dossiers nécessaires aux tâches de maintenance ou d'administration du système.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn