2014-01-16 2 views
0

C 프로그램에서 기존 파일의 파일 타임 스탬프 (즉, st_ctime, st_atime, st_mtime)를 업데이트해야합니다.Linux에서 파일 타임 앰프를 어떻게 설정합니까?

Win32에서 SetFileTime을 사용하여 타임 스탬프를 업데이트 할 수있었습니다.

Linux에서 어떻게 동일한 결과를 얻을 수 있습니까?


편집
나는 touch 알고 있지만 내가 질문에 C 태그를 넣어 했으므로, 나는 ... 시스템 호출을 수행하는 대신 외부 명령을 호출 할 수 있다는 희망

+0

'system ("touch ")'같은 걸까요? –

+0

@SouravGhosh : 오, C'Mon! 해킹이없는 심각한 코드를 작성하려고합니다 ... – eckes

답변

1

와 파일 타임 스탬프를 변경할 수 있지만 액세스 및 수정 시간을 변경하려면 utime 기능을 사용할 수 있습니다.

+0

'st_ctime '은 생성 시간이 아니라 상태 변경 시간입니다. 사실, ext3/ext4와 같은 리눅스에서 사용되는 일반적인 파일 시스템에서, 내가 아는 한 파일 시스템은 파일 생성 시간을 저장하지 않습니다. –

1

당신은 utimensat or futimens를 찾고 있습니다 :

int utimensat(int dirfd, const char *pathname, 
    const struct timespec times[2], int flags); 

int futimens(int fd, const struct timespec times[2]); 

utimensat을 futimens - 난 당신이 파일의 생성 시간을 변경할 수 있습니다 모르겠어요 나노초 정밀

관련 문제