ホームページ > バックエンド開発 > C++ > システムコールを使用して Unix にディレクトリが存在するかどうかを確認するには?

システムコールを使用して Unix にディレクトリが存在するかどうかを確認するには?

Barbara Streisand
リリース: 2024-11-08 00:30:03
オリジナル
301 人が閲覧しました

How to Check if a Directory Exists in Unix Using System Calls?

システム コールを使用した Unix でのディレクトリの存在の確認

Unix システムでは、ディレクトリの存在のクエリはさまざまなファイル管理タスクに不可欠です。ディレクトリが存在しない場合にエラーを返す opendir() とは異なり、他のメソッドはより正確なディレクトリ検証を提供します。

stat() および lstat() によるディレクトリ チェック

POSIX システムは、パス名で指定されたオブジェクトの存在とタイプを確認するために、stat() と lstat() という 2 つの関数を提供します。 stat() がシンボリック リンクをたどる一方で、lstat() はシンボリック リンク自体を検査します。

次のコード スニペットは、stat() を使用してディレクトリの存在を確認する方法を示しています。

#include <sys/stat.h>

struct stat sb;

if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode))
{
    // ...it is a directory...
}
ログイン後にコピー

ファイル タイプ識別用の S_IS* マクロ

stat() が成功した場合、S_ISDIR() を使用してファイルがディレクトリであるかどうかを判断できます。他の S_IS* マクロを使用すると、さまざまなファイル タイプを識別できます。

  • S_ISDIR - ディレクトリ
  • S_ISREG - 通常のファイル
  • S_ISCHR - キャラクター デバイス
  • S_ISBLK - ブロックデバイス
  • S_ISFIFO - FIFO
  • S_ISLNK - シンボリックリンク
  • S_ISSOCK - ソケット

以上がシステムコールを使用して Unix にディレクトリが存在するかどうかを確認するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート