Maison >développement back-end >C++ >Comment accéder de manière fiable au répertoire personnel de l'utilisateur en C pour Linux ?

Comment accéder de manière fiable au répertoire personnel de l'utilisateur en C pour Linux ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-29 17:20:02392parcourir

How to Reliably Access the User's Home Directory in C   for Linux?

Obtenir le répertoire personnel de l'utilisateur sous Linux

Lors du développement de programmes C pour Linux, il est souvent nécessaire d'accéder au chemin du répertoire personnel de l'utilisateur. Cependant, il n'est pas recommandé de s'appuyer sur la variable d'environnement HOME. Voici comment obtenir le répertoire personnel à l'aide des fonctions getpwuid et getuid :

<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>

La fonction getuid() récupère l'ID de l'utilisateur actuel, et getpwuid() utilise cet ID pour obtenir l'entrée de mot de passe correspondante, qui inclut le chemin du répertoire personnel de l'utilisateur stocké dans pw->pw_dir. Cette approche fonctionne à la fois pour les systèmes Linux et Unix.

Création de fichiers/dossiers dans le répertoire racine

Si votre programme s'exécute en tant qu'utilisateur root, évitez de créer des fichiers/dossiers. dans le répertoire racine (/root). La modification du répertoire racine n'est généralement pas recommandée, car elle peut avoir un impact sur la stabilité et la sécurité du système. Pensez plutôt à utiliser un répertoire dédié spécialement créé pour l'utilisation de votre programme, tel que /var/[nom-programme] ou /opt/[nom-programme].

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