_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를 다음의 값 중 하나로 설정합니다.
EACCES
경로는 디텍터리나 읽기 전용 파일을 지정합니다.EINVAL
times 인수가 잘못되었습니다.EMFILE
열린 파일이 너무 많습니다. (수정 시간을 변경하려면 파일은 열려 있어야 합니다)ENOENT
파일 이름 또는 경로를 찾을 수 없습니다.
이러한 반환 코드와 다른 반환코드에 대한 자세한 정보는 _doserrno, errno, _sys_errlist, and _sys_nerr 를 참조하십시오.
만약 변경 날짜가 1970년 1월 1일 자정 이후이고 사용된 함수의 종료일 이전이라면 파일 날짜는 변경될 수 있습니다. _utime 및 _wutime는 64비트 시간값을 사용하므로 종료일은 협정 세계시 3000년 12월 31일 23시 59분 59초입니다. _USE_32BIT_TIME_T가 이전의 동작을 강제로 수행하도록 정의되었다면, 종료일은 협정 세계시 2038년 1월 19일 03시 14분 07초입니다. _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 구조(_utimebuf32 및 __utimbuf64)의 특정 버전은 32비트와 64비트 시간 형식 버전을 사용하여 정의됩니다. 이들은 32비트 및 64비트의 특정 버전의 함수에서 사용됩니다. _USE_32BIT_TIME_T로 정의되지 않는 한 기본적으로 _utimbuf 는 64비트 시간 형식을 사용합니다.
_utime의 filename 인수가 열린 파일의 파일 기술자 대신에 파일 이름 또는 파일의 경로인 것을 제외하면 _utime는 _futime와 동일합니다.
_wutime는 _utime의 와이드 문자 버전이며, _wutime의 filename 인수는 와이드 문자 문자열입니다. 그렇지 않다면 이러한 함수는 동일하게 작동합니다.
제네릭 텍스트 라우팅 매핑
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
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.
참고 항목
참조
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32