構造の詳細の一部をダンプする簡単なユーティリティを作成していましたstat
が、時間属性が私のプラットフォームでは 2 つの 64 ビット int のように見えるstat
タイプであるように見えるため、問題が発生しました。timestruc_t
struct stat statBuf;
return_code = stat( aFileName, &statBuf );
if ( !return_code )
{
struct tm res;
localtime_r( statBuf.st_mtim.tv_sec, &res ); // problem!
localtime_r
秒属性をに変換するために使用できると思いましたが、最初のパラメーターとしてstruct tm
使用するとキャストの問題が発生するようです。statBuf.st_mtim.tv_sec
これは最善の解決策ではないと確信しています - おそらくあなたはもっと良い解決策を知っているでしょう。日付と時刻を取得したいだけです-可能であればサブ秒まで-フォーマットの文字列YYYY-MM-DD HH.MM.SS.SSS
または同様のものとして出力します。どんな提案でも大歓迎です。
アップデート
これは単純な問題でした - 私の間違いです。最初のパラメータはby 値ではなくアドレスである必要があることを忘れていました。したがって、修正され部分的に完成したコードは次のようになります。int
int
localtime_r( &statBuf.st_mtim.tv_sec, &res );
const int bufLen=24;
char buffer[ bufLen + 1];
strftime( buffer, bufLen, "%Y-%m-%d %H:%M:%S", &res );
printf(" %s, %s\n", aFileName, buffer);