Maison  >  Article  >  développement back-end  >  Comment déterminer si un répertoire existe sous Unix ?

Comment déterminer si un répertoire existe sous Unix ?

DDD
DDDoriginal
2024-11-06 12:22:02621parcourir

How to Determine if a Directory Exists in Unix?

Vérification de l'existence d'un répertoire sous Unix

Sous Unix, déterminer l'existence d'un répertoire est essentiel pour diverses opérations. Contrairement à opendir() qui ne révèle la non-existence d'un répertoire qu'en cas d'erreur, il existe des appels système spécifiquement conçus pour vérifier la présence d'un répertoire.

Pour répondre à ce besoin, les systèmes POSIX proposent deux fonctions : stat () et lstat(). Les deux fonctions fournissent des informations sur le chemin spécifié, y compris son type. Cependant, stat() suit les liens symboliques alors que lstat() ne le fait pas.

Pour vérifier si un répertoire existe à l'aide de stat() :

#include <sys/stat.h>

struct stat sb;

if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode)) {
    // Directory exists
}

La macro S_ISDIR() confirme le type de fichier comme répertoire. De même, d'autres types de fichiers peuvent être vérifiés à l'aide des macros S_IS* correspondantes.

Conclusion :

stat() et lstat() fournissent un moyen pratique et complet de déterminer le existence et type d'un fichier ou d'un répertoire sous Unix, permettant une gestion transparente des opérations liées au système de fichiers.

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