다음을 통해 공유


_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를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

시간 관리

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