[解決済み】 `S_ISREG()` とは何ですか、そして何をするのですか?
2022-01-20 05:22:52
質問
私は、マクロ
S_ISREG()
ファイルの属性を取得するC言語プログラムの中で 残念ながら、このマクロに関する基本的な情報はネット上にはありません。もっと高度な議論もあるようですが、私が探しているものを超えています。
とは何ですか?
S_ISREG()
そして、それは何をするのでしょうか?ファイルの属性を取得するプログラムの場合、どのような目的で使用され、具体的にどのような動作をするのでしょうか?
ありがとうございました。
解決方法は?
S_ISREG() は、システムコール stat() から返される stat 構造体の値を解釈するために使用されるマクロです。引数(struct statのst_modeメンバ)が通常ファイルの場合、trueと評価されます。
参照
man stat
,
man fstat
または
man inode
(
inode マニュアルページへのリンク
)で詳細をご確認ください。以下は、マニュアルページの該当部分です。
Because tests of the above form are common, additional macros are defined by POSIX to allow the test of the file type in st_mode to be written more concisely:
S_ISREG(m) is it a regular file?
S_ISDIR(m) directory?
S_ISCHR(m) character device?
S_ISBLK(m) block device?
S_ISFIFO(m) FIFO (named pipe)?
S_ISLNK(m) symbolic link? (Not in POSIX.1-1996.)
S_ISSOCK(m) socket? (Not in POSIX.1-1996.)
The preceding code snippet could thus be rewritten as:
stat(pathname, &sb);
if (S_ISREG(sb.st_mode)) {
/* Handle regular file */
}
関連
-
[解決済み】Macでポート3000をロックしているプロセスを検索(およびkill)する
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] time(1) の出力における 'real', 'user' および 'sys' はどのような意味ですか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] C言語のコードで「:-!」とは何ですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Valgrind - strcpyのサイズ1の無効な書き込み
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】 error: too few arguments to function `printDay' (C言語)
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み] struct has no member named
-
[解決済み】argv[]をint型として取得するには?
-
[解決済み] [Solved] .Cファイルをコンパイルしています。アーキテクチャ x86_64 の未定義シンボル
-
[解決済み】宣言指定子で2つ以上のデータ型がある場合のエラー【非公開