ホームページ >運用・保守 >Linuxの運用と保守 >Linux にファイルが存在するかどうかを確認する方法

Linux にファイルが存在するかどうかを確認する方法

尚
オリジナル
2019-12-13 10:08:495539ブラウズ

Linux にファイルが存在するかどうかを確認する方法

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 の値は次のとおりです:

1. ENOENT パラメータで指定されたファイル file_name存在しません

2. ENOTDIR パスのディレクトリは存在しますが、実際のディレクトリではありません

3. ELOOP で開くファイルにはシンボリック リンクが多すぎます。上限は 16 ですシンボリック リンク

4. EFAULT パラメータ buf 存在できないメモリ空間を指している無効なポインタです

5. ファイル

6 へのアクセス時に EACCESS が拒否されました。 ENOMEM コア メモリが不足しています

7. ENAMETOOLONG パラメータのパス file_name 名前が長すぎます

2. アクセス関数

アクセス関数はアクセス許可をテストします実際のユーザー ID と実際のグループに基づきます。関数プロトタイプは次のとおりです:

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

mode 値:

F_OK ファイルが存在するかどうかのテスト

R_OK 読み取り権限のテスト

W_OK 書き込み権限のテスト

X_OK テスト実行権限

ファイルが存在するかどうかを正しく判断するには、access 関数を使用します。実装は次のとおりです:

Linux にファイルが存在するかどうかを確認する方法

3. oepndir function

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

Linux にファイルが存在するかどうかを確認する方法

(推奨学習: linux チュートリアル )

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

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