inode 에 대한 접근/수정 시간을 변경한다.
#include <sys/types.h>#include <utime.h>int utime(const char *filename, struct utimbuf *buf); |
utime()는 filename으로 지정된 inode 의 접근 시간과 수정시간을 buf의 actime 과 modtime 값으로 각각 변경한다. 만약 buf 가 NULL 이라면, 파일의 접근 시간과 수정시간은 현재 시간으로 설정된다. 다음은 utimebuf 구조체이다.
struct utimbuf{ time_t actime; // 접근시간 time_t modtime; // 변경시간}; |
성공시 0을 리턴하며, 에러때는 -1을 리턴한다.
다양한 원인에 의해서 에러가 발생할수 있으며 아래와 같은 에러 메시지들이 있다.
- EACCESS
파일에 대한 권한이 거부되었다.
- ENOENT
파일이 존재하지 않는다.
#include <sys/types.h>#include <utime.h>#include <sys/time.h>#include <stdio.h>#include <string.h>int main(){ struct utimbuf ubuf; ubuf.actime = time((time_t *)0); ubuf.modtime = time((time_t *)0); // 접근,수정 시간을 현재 시간으로 변경한다. utime("sizeof.c", NULL); // NULL 대신 actime,modtime 을 세팅해서 // 직접 값을 지정해줄수도 있다. utime("sizeof.c", &ubuf);} |