0

構造の詳細の一部をダンプする簡単なユーティリティを作成していました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 値ではなくアドレスである必要があることを忘れていました。したがって、修正され部分的に完成したコードは次のようになります。intint

    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);
4

1 に答える 1

-1

最初のパラメータはby 値ではなく、のアドレスである必要があります。intint

于 2012-07-23T14:14:32.373 に答える