2012-05-24 6 views
0

그래서 나는 리눅스에서 "find"명령을 모방하는 프로그램을 작성하고있다. 모든 일을 처리 할 수 ​​있지만 ctime, mtime 및 atime에서 문자열의 형식을 지정하는 방법을 알 수는 없습니다.stat (system call)에서 mtime 포맷하기

인수가 time_t 구조체라는 것을 알고 있지만 형식화 가능한 문자열로 변환 할 수 없습니다.

아래 내용은 다음과 같습니다. 오류로 인해 작동하지 않습니다 "오류 : 'size_t strftime (char *, size_t, const char *, const tm *)'에 '4'를 'const tm'으로 변환 할 수 없습니다.

.

SB는 합계 구조체입니다
cout << strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", (&sb.st_mtime)); 

그것은 형식으로 인쇄해야합니다 : 이상적으로, 나는 이런 식으로 뭔가를 원하는 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