Maison > développement back-end > C++ > le corps du texte

Comment vérifier l'existence d'un répertoire sous Unix à l'aide d'appels système ?

Barbara Streisand
Libérer: 2024-11-07 13:09:03
original
794 Les gens l'ont consulté

How to Check Directory Existence in Unix Using System Calls?

Vérification de l'existence d'un répertoire sous Unix : un guide complet à l'aide des appels système

Problème :

Sous Unix, comment peut-on déterminer l'existence d'un répertoire à l'aide d'un appel système sans l'ouvrir ni gérer les erreurs associées ?

Réponse :

Les systèmes POSIX fournissent deux fonctions essentielles à cet effet : stat( ) et lstat(). Ces fonctions vous permettent de vérifier si un nom de chemin reflète un objet accessible valide et de récupérer des informations sur son type.

Différences clés entre stat() et lstat() :

  • stat() : suit les liens symboliques et fournit des informations sur la destination finale.
  • lstat() : fournit des informations sur le lien symbolique lui-même, quelles que soient les cibles vers lesquelles il peut pointer.

Implémentation à l'aide de stat() :

#include <sys/stat.h>

struct stat sb;

if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode)) {
    // True if pathname is a directory
}
Copier après la connexion

Vérification supplémentaire du type de fichier :

Utilisation des macros S_IS* de < sys/stat.h>, vous pouvez vérifier d'autres types de fichiers au-delà des répertoires :

  • S_ISREG : fichier normal
  • S_ISCHR : périphérique de caractères
  • S_ISBLK : périphérique de blocage
  • S_ISFIFO : FIFO
  • S_ISLNK : Lien symbolique
  • S_ISSOCK : Prise

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!