10

質問

  • posix マクロ S_ISREG、S_ISDIR などは Linux のみですか? CURLをコンパイルしようとしていて、Windowsで使用しようとしているため、調べる必要があります
  • Windowsでそれらにアクセスするためにどのインクルードファイルを使用できますか.

これは問題のあるコードです

/*we ignore file size for char/block devices, sockets etc*/
if(S_ISREG(fileinfo.st_mode))
   uploadfilesize= fileinfo.st_size;
}

そしてそれはエラーを引き起こします

error LNK2019: unresolved external symbol _S_ISREG referenced in function _operate file tool_operate.obj

それらは、次の質問で参照されています

どうやら S_ISREG() は一連の posix マクロの一部であり、ファイルが「通常のファイル」であるかどうかを教えてくれるはずですが、私が見つけたすべての例には Linux 固有のインクルード ファイルがありました。

4

4 に答える 4

3

Windowsでは、アンダースコア()を追加してみてください_S_ISREG。MinGWのライブラリでは、S_ISREGマクロは次の場所からもアクセスできます。<sys/stat.h>

たぶん、構成マクロをチェックするだけです。

于 2012-06-28T06:16:41.013 に答える
3

Windows ではそのようなことはありません。FindFirstFile、FindNextFile win32 api を使用できます。戻り値の構造には類似したものがありますが、同じではありません。

gcc/mingw ライブラリを使用する場合、stat() シミュレーションがあります。そのマクロには sys/stat.h を含める必要があります。

于 2012-06-28T06:59:38.020 に答える