ホームページ  >  記事  >  運用・保守  >  Linuxでファイルディレクトリが存在するかどうかを確認する方法

Linuxでファイルディレクトリが存在するかどうかを確認する方法

青灯夜游
青灯夜游オリジナル
2022-03-21 13:02:498933ブラウズ

表示方法: 1. stat シリーズ関数を使用します (存在する場合)、ファイルに関連する構造情報を返します; 2. access 関数を使用します、構文は「access (ファイル ディレクトリ パス、F_OK)」です。 ; 3. oepndir 関数を使用し、ポインタが存在する場合はポインタを返し、存在しない場合は NULL を返します。

Linuxでファイルディレクトリが存在するかどうかを確認する方法

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

linux ファイル ディレクトリが存在するかどうかを確認します

1. stat シリーズの関数

stat関数は、ファイルに関する構造情報を返すために使用されます。 stat シリーズ関数には 3 つの状況があり、それぞれファイル名、ファイル記述子、シンボリック リンク ファイルに対応します。 stat 構造体は、主にファイル タイプ、ファイル サイズなどを含むファイル属性を記述します。詳細な stat 構造は次のとおりです。

struct stat {
    mode_t    st_mode;    // file type & mode(permissions)
    ino_t     st_ino;     // i-node number(serial number)
    dev_t     st_dev;     // device number(filesystem)
    dev_t     st_rdev;    // device number for specials files
    nlink_t   st_nlink;   // number of links
    uid_t     st_uid;     // user ID of owner
    gid_t     st_gid;     // group ID of owner
    off_t     st_size;    // size in bytes, for regular files
    time_t    st_atime;   // time of last access
    time_t    st_mtime;   // time of last modification
    time_t    st_ctime;   // time of last file status change
    long      st_blksize; // best I/O block size
    long      st_blocks;  // number of 512-byte blocks allocated
};

stat を通じてファイル タイプやファイル サイズなどの情報を取得できます。ファイル タイプには、通常のファイル、ディレクトリ ファイル、ブロック スペシャル ファイル、キャラクタ スペシャル ファイル、FIFO、ソケット、シンボリック リンクがあります。 stat 関数を使用してファイルまたはディレクトリが存在するかどうかを判断する場合、stat 関数を実行するときに、ファイルが存在する場合は、そのファイルが通常のファイルであるかディレクトリ ファイルであるかをさらに判断する必要があります。

stat シリーズ関数エラーは -1 を返します。エラー コードは errno に格納されます。errno の値は次のとおりです:

ENOENT 参数file_name 指定的文件不存在
ENOTDIR 路径中的目录存在但却非真正的目录
ELOOP 欲打开的文件有过多符号连接问题, 上限为16 符号连接
EFAULT 参数buf 为无效指针, 指向无法存在的内存空间
EACCESS 存取文件时被拒绝
ENOMEM 核心内存不足
ENAMETOOLONG 参数file_name 的路径名称太长

2、アクセス関数

access 関数 実際のユーザー ID および実際のグループに対してアクセスをテストします。関数プロトタイプは次のとおりです:

#include <unistd.h>
int access(const char *pathname, int mode);

mode 値:

  • F_OK ファイルが存在するかどうかをテストします

  • R_OK 読み取り権限をテストします

  • W_OK テスト書き込み権限

  • XX_OK テスト実行権限

ファイルがファイルかどうかを正しく判断するために使用されます。アクセス関数は次のように実装されます:

3. oepndir 関数

opendir 関数は、ファイル ディレクトリを開くために使用されます。正常にポインタを返します。エラーが発生した場合は NULL を返します。実装は次のとおりです。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinuxでファイルディレクトリが存在するかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。