【问题标题】:Formatting mtime from stat(system call)从 stat 格式化 mtime(系统调用)
【发布时间】:2012-05-30 13:51:59
【问题描述】:

所以我正在编写一个程序来模仿 linux 中的“查找”命令。我已经处理好了所有事情,但我不知道如何格式化 ctime、mtime 和 atime 中的字符串。

我知道参数是 struct time_t,但我找不到将其转换为可格式化字符串的方法。

我所拥有的部分如下。由于错误“error: cannot convert '__time_t' to 'const tm' for argument '4' to 'size_t strftime(char*, size_t, const char*, const tm*)'

理想情况下,我想要这样的东西:

cout << strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", (&sb.st_mtime));

其中 sb 是统计结构。它应该以以下格式打印:HH:MM:SS-MM/DD/YY

我确信答案很简单,但我无法弄清楚。

【问题讨论】:

    标签: c++ struct stat strftime time-t


    【解决方案1】:

    你必须分几个步骤来做:

    struct tm *mytm = localtime(&sb.st_mtime);
    strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", mytm);
    cout << mBuf;
    

    当然,对localtimestrftime 的调用可以合并为一个调用:

    strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", localtime(&sb.st_mtime));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 2015-01-28
      相关资源
      最近更新 更多