Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Defina o tempo de modificação do arquivo.
Sintaxe
int _utime( // See note in remarks section about linkage
const char *filename,
struct _utimbuf *times
);
int _utime32(
const char *filename,
struct __utimbuf32 *times
);
int _utime64(
const char *filename,
struct __utimbuf64 *times
);
int _wutime( // See note in remarks section about linkage
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
);
Parâmetros
filename
Ponteiro para uma cadeia de caracteres que contém o caminho ou nome do arquivo.
times
Ponteiro para valores de tempo armazenados.
Valor de retorno
Cada uma dessas funções retorna 0 se o tempo de modificação do arquivo foi alterado. Um valor de retorno de -1 indica um erro. Se um parâmetro inválido for passado, o manipulador de parâmetros inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções retornarão -1 e errno serão definidas como um dos seguintes valores:
errno valor |
Condition |
|---|---|
EACCES |
Path especifica diretório ou arquivo somente leitura |
EINVAL |
Argumento inválido times |
EMFILE |
Demasiados ficheiros abertos (o ficheiro tem de ser aberto para alterar a sua hora de modificação) |
ENOENT |
Caminho ou nome do arquivo não encontrado |
Para obter mais informações sobre códigos de retorno, consulte errno, _doserrno, _sys_errliste _sys_nerr.
A data pode ser alterada para um arquivo se a data de alteração for posterior à meia-noite, 1º de janeiro de 1970 e antes da data de término da função usada.
_utime e _wutime use um valor de tempo de 64 bits, então a data final é 23:59:59, 31 de dezembro de 3000, UTC. Se _USE_32BIT_TIME_T for definido para forçar o comportamento antigo, a data final é 23:59:59 18 de janeiro de 2038, UTC.
_utime32 ou _wutime32 use um tipo de tempo de 32 bits, independentemente de estar _USE_32BIT_TIME_T definido, e sempre tenha a data de término anterior.
_utime64 ou _wutime64 sempre use o tipo de tempo de 64 bits, para que essas funções sempre suportem a data de término posterior.
Observações
A _utime função define o tempo de modificação para o arquivo especificado pelo filename. O processo deve ter acesso de gravação ao arquivo para alterar a hora. No sistema operacional Windows, você pode alterar o tempo de acesso e o tempo de modificação na _utimbuf estrutura. Se times for um NULL ponteiro, a hora de modificação é definida para a hora local atual. Caso contrário, times deve apontar para uma estrutura do tipo _utimbuf, definida em SYS\UTIME.H.
A _utimbuf estrutura armazena o acesso ao arquivo e os tempos de modificação usados para _utime alterar as datas de modificação do arquivo. A estrutura tem os seguintes campos, que são ambos do tipo time_t:
| Campo | Description |
|---|---|
actime |
Tempo de acesso ao ficheiro |
modtime |
Hora da modificação do ficheiro |
Versões específicas da _utimbuf estrutura (__utimbuf32 e __utimbuf64) são definidas usando as versões de 32 bits e 64 bits do tipo de tempo. Essas estruturas são usadas nas versões específicas de 32 bits e 64 bits dessa função.
_utimbuf por padrão, usa um tipo de tempo de 64 bits, a menos que _USE_32BIT_TIME_T seja definido.
_utime é idêntico _futime , exceto que o filename argumento de é um nome de arquivo ou um caminho para um arquivo, em vez de um descritor de _utime arquivo de um arquivo aberto.
_wutimeé uma versão de caracteres largos de ; o filename argumento para _wutime é uma cadeia de _utimecaracteres largos. Estas funções comportam-se de forma idêntica.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Observação
Quando você usa o Windows SDK versão 10.0.26100.6901 e Visual Studio 2026 ou posterior juntos, _utime e _wutime não são mais static inline (ligação interna). Em vez disso, eles são inline (ligação externa).
Para retornar ao comportamento anterior, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 antes de incluir quaisquer cabeçalhos CRT. Por padrão, _STATIC_INLINE_UCRT_FUNCTIONS é definido como 0.
Essa alteração aumenta a conformidade do UCRT com o padrão C++ e melhora a compatibilidade com módulos C++.
Mapeamentos de rotina de texto genérico
| TCHAR. Rotina H |
_UNICODE e _MBCS não definido |
_MBCS definido |
_UNICODE definido |
|---|---|---|---|
_tutime |
_utime |
_utime |
_wutime |
_tutime32 |
_utime32 |
_utime32 |
_wutime32 |
_tutime64 |
_utime64 |
_utime64 |
_wutime64 |
Requerimentos
| Rotina | Cabeçalhos obrigatórios | Cabeçalhos opcionais |
|---|---|---|
_utime, _utime32, _utime64 |
<sys/utime.h> | <errno.h> |
_utime64 |
<sys/utime.h> | <errno.h> |
_wutime |
<utime.h> ou <wchar.h> | <errno.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
Example
Este programa usa _utime para definir o tempo de modificação do arquivo para a hora atual.
// 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" );
}
Saída da amostra
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
Consulte também
Gestão do tempo
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 funções
time, _time32, _time64