본문 바로가기

UNIX_LINUX_C_C++

file 접근,수정 시간을 현재 시간으로 변경한다.

1장. utime(2)

차례
1.1절. 사용법
1.2절. 설명
1.3절. 반환값
1.4절. 에러
1.5절. 예제

inode 에 대한 접근/수정 시간을 변경한다.


1.1절. 사용법

#include <sys/types.h>#include <utime.h>int utime(const char *filename, struct utimbuf *buf);		


1.2절. 설명

utime()는 filename으로 지정된 inode 의 접근 시간과 수정시간을 buf의 actime 과 modtime 값으로 각각 변경한다. 만약 buf 가 NULL 이라면, 파일의 접근 시간과 수정시간은 현재 시간으로 설정된다. 다음은 utimebuf 구조체이다.

struct utimbuf{    time_t actime;   // 접근시간    time_t modtime;	 // 변경시간};		


1.3절. 반환값

성공시 0을 리턴하며, 에러때는 -1을 리턴한다.


1.4절. 에러

다양한 원인에 의해서 에러가 발생할수 있으며 아래와 같은 에러 메시지들이 있다.

EACCESS

파일에 대한 권한이 거부되었다.

ENOENT

파일이 존재하지 않는다.


1.5절. 예제

#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);}