_utime
, _utime32
, _utime64
, _wutime
, _wutime32
_wutime64
파일 수정 시간을 설정합니다.
구문
int _utime(
const char *filename,
struct _utimbuf *times
);
int _utime32(
const char *filename,
struct __utimbuf32 *times
);
int _utime64(
const char *filename,
struct __utimbuf64 *times
);
int _wutime(
const wchar_t *filename,
struct _utimbuf *times
);
int _wutime32(
const wchar_t *filename,
struct __utimbuf32 *times
);
int _wutime64(
const wchar_t *filename,
struct __utimbuf64 *times
);
매개 변수
filename
경로 또는 파일 이름을 포함하는 문자열에 대한 포인터입니다.
times
저장된 시간 값에 대한 포인터입니다.
반환 값
파일 수정 시간을 변경한 경우 이러한 각 함수는 0을 반환합니다. 반환 값 -1은 오류를 나타냅니다. 잘못된 매개 변수가 전달되면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 실행을 계속하도록 허용된 경우 이러한 함수는 -1을 반환하고 errno
다음 값 중 하나로 설정됩니다.
errno 값 |
조건 |
---|---|
EACCES |
경로가 디렉터리 또는 읽기 전용 파일을 지정함 |
EINVAL |
times 인수가 잘못됨 |
EMFILE |
파일이 너무 많이 열려 있음(수정 시간을 변경하려면 파일을 열어야 함) |
ENOENT |
경로 또는 파일 이름을 찾을 수 없음 |
반환 코드에 대한 자세한 내용은 , , 및 를 참조하세요errno
._sys_nerr
_sys_errlist
_doserrno
변경 날짜가 1970년 1월 1일 자정 이후이고 사용한 함수의 종료 날짜 이전이면 파일의 날짜를 변경할 수 있습니다. _utime
및 _wutime
은 64비트 시간 값을 사용하므로 종료 시간은 3000년 12월 31일 23:59:59(UTC)입니다. _USE_32BIT_TIME_T
이 이전 동작을 강제 적용하도록 정의된 경우의 종료 날짜는 2038년 1월 18일 23:59:59(UTC)입니다. _utime32
또는 _wutime32
는 _USE_32BIT_TIME_T
정의 여부와 관계없이 32비트 시간 형식을 사용하며 항상 종료 날짜가 더 빠릅니다. _utime64
또는 _wutime64
는 항상 64비트 시간 형식을 사용하므로 이러한 함수는 항상 더 이후의 종료 날짜를 지원합니다.
설명
이 함수는 _utime
.에 지정된 filename
파일의 수정 시간을 설정합니다. 시간을 변경하려면 프로세스에 파일에 대한 쓰기 권한이 있어야 합니다. Windows 운영 체제에서는 _utimbuf
구조체에서 액세스 시간과 수정 시간을 변경할 수 있습니다. times
가 NULL
포인터이면 수정 시간은 현재 현지 시간으로 설정됩니다. 그렇지 않으면 times
는 SYS\UTIME.H에 정의된 _utimbuf
형식의 구조체를 가리켜야 합니다.
_utimbuf
구조체는 _utime
에서 파일 수정 날짜를 변경하는 데 사용하는 파일 액세스 및 수정 시간을 저장합니다. 이 구조체에는 다음 필드가 포함되어 있습니다. 이 두 필드의 형식은 모두 time_t
입니다.
필드 | 설명 |
---|---|
actime |
파일 액세스 시간 |
modtime |
파일 수정 시간 |
특정 버전의 _utimbuf
구조체(__utimbuf32
및 __utimbuf64
)는 32비트 및 64비트 버전의 시간 형식을 사용하여 정의됩니다. 이러한 구조체는 이 함수의 32비트 및 64비트 특정 버전에서 사용됩니다. _utimbuf
자체는 _USE_32BIT_TIME_T
를 정의하는 경우가 아니면 기본적으로 64비트 시간 형식을 사용합니다.
_utime
은 _utime
의 filename
인수가 열린 파일의 파일 설명자가 아닌 파일 이름이나 파일 경로라는 점을 제외하면 _futime
과 동일합니다.
_wutime
은 _utime
의 와이드 문자 버전이며, filename
에 대한 _wutime
인수는 와이드 문자열입니다. 그 외의 경우에는 이들 함수가 동일하게 작동합니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 | _UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tutime |
_utime |
_utime |
_wutime |
_tutime32 |
_utime32 |
_utime32 |
_wutime32 |
_tutime64 |
_utime64 |
_utime64 |
_wutime64 |
요구 사항
루틴에서 반환된 값 | 필수 헤더 | 선택적 헤더 |
---|---|---|
_utime , , _utime32 _utime64 |
<sys/utime.h> | <errno.h> |
_utime64 |
<sys/utime.h> | <errno.h> |
_wutime |
<utime.h> 또는 <wchar.h> | <errno.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
이 프로그램은 _utime
을 사용하여 파일 수정 시간을 현재 시간으로 설정합니다.
// crt_utime.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/utime.h>
#include <time.h>
int main( void )
{
struct tm tma = {0}, tmm = {0};
struct _utimbuf ut;
// Fill out the accessed time structure
tma.tm_hour = 12;
tma.tm_isdst = 0;
tma.tm_mday = 15;
tma.tm_min = 0;
tma.tm_mon = 0;
tma.tm_sec = 0;
tma.tm_year = 103;
// Fill out the modified time structure
tmm.tm_hour = 12;
tmm.tm_isdst = 0;
tmm.tm_mday = 15;
tmm.tm_min = 0;
tmm.tm_mon = 0;
tmm.tm_sec = 0;
tmm.tm_year = 102;
// Convert tm to time_t
ut.actime = mktime(&tma);
ut.modtime = mktime(&tmm);
// Show file time before and after
system( "dir crt_utime.c" );
if( _utime( "crt_utime.c", &ut ) == -1 )
perror( "_utime failed\n" );
else
printf( "File time modified\n" );
system( "dir crt_utime.c" );
}
샘플 출력
Volume in drive C has no label.
Volume Serial Number is 9CAC-DE74
Directory of C:\test
01/09/2003 05:38 PM 935 crt_utime.c
1 File(s) 935 bytes
0 Dir(s) 20,742,955,008 bytes free
File time modified
Volume in drive C has no label.
Volume Serial Number is 9CAC-DE74
Directory of C:\test
01/15/2002 12:00 PM 935 crt_utime.c
1 File(s) 935 bytes
0 Dir(s) 20,742,955,008 bytes free
참고 항목
시간 관리
asctime
, _wasctime
ctime
, _ctime32
, _ctime64
, _wctime
, _wctime32
_wctime64
_fstat
, _fstat32
, _fstat64
, _fstati64
, _fstat32i64
_fstat64i32
_ftime
, , _ftime32
_ftime64
_futime
, , _futime32
_futime64
gmtime
, , _gmtime32
_gmtime64
localtime
, , _localtime32
_localtime64
_stat
, _wstat
함수
time
, , _time32
_time64