UTIMES(2)

명칭
utimes, lutimes, futimes - 파일 액세스 시각과 갱신 시각의 설정

프로그램 라이브러리
libc

서식
<sys/time.h> int utimes(const char *path, const struct timeval *times) int lutimes(const char *path, const struct timeval *times) int futimes(int fd, const struct timeval *times)

해설
path 그리고 지정한 파일인가 fd 하지만 참조하는 파일의 액세스 시각과 갱신 시각을, 인수 times 그리고 지정된 것처럼 변경합니다.

times 하지만 NULL 인 경우, 액세스 시각과 갱신 시각은 현재의 시각으로 설정됩니다. 호출측은 파일의 소유자로 파일의 기록권이 있는지, 슈퍼 유저일 필요가 있습니다.

times 하지만 NULL 이외인 경우, times (은)는 2 개의 timeval 구조체의 배열을 가리키고 있는 것이 전제가 됩니다. 액세스 시각은 최초의 요소에, 갱신 시각은 다음의 요소에 설정합니다. 소환측은 파일의 소유자일까 슈퍼 유저일 필요가 있습니다.

어느 쪽의 경우에서도, 파일의 inode 변경 시각은 현재의 시각으로 설정됩니다.

lutimes() (은)는 지정한 파일이 기호 연결 이외에서는 utimes() (와)과 같습니다. 기호 연결의 경우 lutimes() (은)는 링크의 액세스 시각과 갱신 시각을 변경하는데 대해, utimes() (은)는 링크가 참조하는 파일의 시각을 변경합니다.

반환값

에러
utimes() (와)과 lutimes() (은)는, 이하와 같은 경우에 에러가 됩니다.

[EACCES]
    지정된 패스에는, 검색이 허가되어 있지 않은 디렉토리가 포함되어 있습니다. 혹은 times 인수가 NULL 로, 프로세스의 실효 유저 ID 가 파일의 소유자와 일치하지 않고, 게다가 슈퍼 유저도 아니고, 기록 액세스가 거부되었습니다.

[EFAULT]
    path 또는 times (은)는, 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

[EIO]
    변경되는 inode 의 읽기 쓰기의 사이에 입출력 에러가 발생했습니다.

[ELOOP]
    패스명을 변환할 경우에 검출된 기호 연결이 너무 많습니다.

[ENAMETOOLONG]
    패스명의 원가요소가 NAME_MAX 캐릭터를 넘고 있는지, 또는 패스명 전체 PATH_MAX 캐릭터를 넘고 있습니다.

[ENOENT]
    지정한 파일이 존재하지 않습니다.

[ENOTDIR]
    패스의 원가요소중에 디렉토리 이외의 것이 포함되어 있습니다.

[EPERM]
    times 인수가 눌이 아니고, 호출측 프로세스의 실효 유저 ID 가, 파일의 소유자와 일치하지 않고, 게다가 슈퍼 유저가 아닙니다.

[EROFS]
    그 파일을 포함한 파일 시스템이, 읽기 전용으로 mount 되고 있습니다.

futimes() (은)는, 이하의 경우에 에러가 됩니다.

[EBADF]
    fd 하지만, 유효한 기술자를 참조하고 있지 않습니다.

모든 함수는, 이하의 경우에 에러가 됩니다.

[EACCES]
    times 인수가 눌 (이어)여, 프로세스의 실효 유저 ID 가 파일의 소유자와 일치하지 않고, 게다가 슈퍼 유저도 아니고, 기록 액세스가 거부되었습니다.

[EFAULT]
    times (은)는, 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

[EIO]
    변경되는 inode 의 읽고 쓰기중에 입출력 에러가 발생했습니다.

[EPERM]
    times 인수가 눌 (이)가 아니고, 호출측 프로세스의 실효 유저 ID 가, 파일의 소유자와 일치하지 않고, 게다가 슈퍼 유저이기도 하지 않습니다.

[EROFS]
    그 파일을 포함한 파일 시스템이 읽기 전용으로 mount 되고 있습니다.

관련 항목
stat(2), utime(3)

역사
utimes() 함수는 4.2BSD 그리고 등장했습니다. futimes() 함수와 lutimes() 함수는 FreeBSD 3.0 그리고 처음 등장했습니다.