そのため、ファイルの最終変更時刻を確認しようとしているCでmtime構造体を実装するのに問題があります。コンパイルすると、次のエラーが発生します。
pr8.1.c:246: error: incompatible types when assigning to type struct timespec from type time_t
make: *** [pr8] Error 1
これに使用しているコードは次のとおりです。
static struct timespec mtime(const char *file)
{
struct stat s;
struct timespec t = { 0, 0 };
if (stat(file, &s) == 0)
#if defined(MTIME) && MTIME == 1 // Linux
{ t = s.st_mtime; }
#elif defined(MTIME) && MTIME == 2 // Mac OS X
{ t = s.st_mtimespec; }
#elif defined(MTIME) && MTIME == 3 // Mac OS X, with some additional settings
{ t.tv_sec = s.st_mtime; t.tv_nsec = s.st_mtimensec; }
#else // Solaris
{ t.tv_sec = s.st_mtime; }
#endif
return t;
}
そして構造体の統計:
struct stat
{ time_t st_mtime; };
PSフォーマットについて申し訳ありませんが、フォーマットがこのように動作している理由がわかりません。Linuxでこれを実行します。助けてくれてありがとう。