2012-05-24 19 views
0

因此,我正在编写一个程序来模仿linux中的“find”命令。我有一切照顾,但我不知道如何从ctime,mtime和atime格式化字符串。从stat(系统调用)格式化mtime

我知道的参数是结构time_t的,但我不能找到将其转换为一个字符串formatable。的我有什么

部分如下。它不会工作,因为错误“错误:不能转换'__time_t'到'const tm'的参数'4'到'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

我敢肯定的答案是简单的东西,但我无法弄清楚

回答

0

你必须做的几个步骤:

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)); 
+0

好极了!谢谢! – twsmale