_utime
, _utime32
, _utime64
, _wutime
, , _wutime32
, _wutime64
Establece la hora de modificación de un archivo.
Sintaxis
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
);
Parámetros
filename
Puntero a una cadena que contiene la ruta de acceso o el nombre de archivo.
times
Puntero a los valores de hora almacenados.
Valor devuelto
Si se ha cambiado la hora de modificación de archivo, cada una de estas funciones devuelve 0. Un valor devuelto de -1 indica un error. Si se pasa un parámetro no válido, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones devuelven -1 y errno
se establecen en uno de los valores siguientes:
Valor de errno |
Condición |
---|---|
EACCES |
La ruta de acceso especifica un directorio o un archivo de solo lectura |
EINVAL |
Argumento times no válido |
EMFILE |
Demasiados archivos abiertos (se debe abrir el archivo para cambiar su hora de modificación) |
ENOENT |
Ruta de acceso o nombre de archivo no encontrado |
Para obtener más información sobre los códigos de retorno, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
.
La fecha de un archivo se puede cambiar si la fecha de modificación es posterior a la medianoche del 1 de enero de 1970 y anterior a la fecha de finalización de la función empleada. _utime
y _wutime
usan un valor de hora de 64 bits, por lo que la fecha de finalización es 23:59:59, 31 de diciembre de 3000, UTC. Si _USE_32BIT_TIME_T
se define para forzar el comportamiento anterior, la fecha de finalización es 23:59:59, 18 de enero de 2038, UTC. _utime32
o _wutime32
usan un tipo de hora de 32 bits independientemente de si _USE_32BIT_TIME_T
está definido y siempre tienen la fecha de finalización más temprana. _utime64
o _wutime64
usan siempre el tipo de hora de 64 bits, por lo que en todo momento admiten la fecha de finalización más tardía.
Comentarios
La _utime
función establece el tiempo de modificación del archivo especificado por filename
. El proceso debe tener acceso de escritura al archivo para cambiar la hora. En el sistema operativo Windows, puede cambiar la hora de acceso y de modificación en la estructura _utimbuf
. Si times
es un puntero NULL
, la hora de modificación se establece en la hora local actual. De lo contrario, times
debe apuntar a una estructura de tipo _utimbuf
, definida en SYS\UTIME.H.
La estructura _utimbuf
almacena las horas de acceso a archivos y de modificación usadas por _utime
para cambiar las fechas de modificación de archivos. La estructura tiene los dos campos siguientes, que son de tipo time_t
:
Campo | Descripción |
---|---|
actime |
Hora de acceso a archivos |
modtime |
Hora de modificación de archivos |
Las versiones específicas de la estructura _utimbuf
(__utimbuf32
y __utimbuf64
) se definen mediante las versiones de 32 y 64 bits del tipo de hora. Estas estructuras se usan en las versiones específicas de 32 y 64 bits de esta función. _utimbuf
de forma predeterminada usa un tipo de hora de 64 bits, a menos que _USE_32BIT_TIME_T
esté definido.
_utime
es idéntico a _futime
, excepto que el argumento filename
de _utime
es un nombre de archivo o una ruta de acceso a un archivo en lugar de un descriptor de archivo de un archivo abierto.
_wutime
es una versión con caracteres anchos de _utime
; el argumento filename
para _wutime
es una cadena de caracteres anchos. Por lo demás, estas funciones se comportan exactamente igual.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina TCHAR.H | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tutime |
_utime |
_utime |
_wutime |
_tutime32 |
_utime32 |
_utime32 |
_wutime32 |
_tutime64 |
_utime64 |
_utime64 |
_wutime64 |
Requisitos
Routine | Encabezados obligatorios | Encabezados opcionales |
---|---|---|
_utime , , _utime32 , _utime64 |
<sys/utime.h> | <errno.h> |
_utime64 |
<sys/utime.h> | <errno.h> |
_wutime |
<utime.h> o <wchar.h> | <errno.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
Este programa usa _utime
para establecer la hora de modificación del archivo en la hora actual.
// 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" );
}
Salida de ejemplo
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 también
Administración de tiempo
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
Funciones _stat
, _wstat
time
, , _time32
, _time64