• ベストアンサー

ファイル or ディレクトリの判別

C言語を勉強中です。 stat()を使用してファイルかディレクトリかの判別を行います。 ヘルプを見ると、構造体のst_modeを調べればいいという所まではわかりました。 この構造体のメンバをどう使用すれば、判別出来ますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

現実的にはnitscapeさんの方法でほぼ問題ありませんが、 正確には、S_IFMT と論理和をとった結果が S_IFDIR と一致するものがディレクトリです。 (sb->st_mode & S_IFMT) == S_IFDIR #うちの環境では、_S_IFDIR ではなく、S_IFDIR でした。 /usr/include/sys/stat.h をみてみればわかると思います。 #/usr/include も環境によって違います。

you314
質問者

お礼

お礼が遅れて申し訳ありません。無事、解決する事が出来ましたm(__)m

その他の回答 (1)

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.1

_S_IFDIRのビットが立っていればフォルダ、そうでなければフォルダではない、と判断できます。if(~ & _S_IFDIR)のように使えばいいと思います。

you314
質問者

お礼

お礼が遅れて申し訳ありません。無事、解決する事が出来ましたm(__)m

関連するQ&A