_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64
Establezca el tiempo de modificación del archivo.
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 o el nombre de archivo.times
Puntero a los valores de hora almacenados.
Valor devuelto
Cada una de estas funciones devuelve 0 si el tiempo del archivo (el archivo modificación ha cambiado. Un valor devuelto de – 1 indica un error. Si se pasa un parámetro no válido, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones devuelven -1 y errno se establece en uno de los siguientes valores:
EACCES
La ruta especifica el directorio o archivo de sólo lecturaEINVAL
Argumento no válido de timesEMFILE
Demasiados archivos abiertos (el archivo se debe abrir para cambiar el tiempo de modificación)ENOENT
Ruta de acceso o nombre de archivo no encontrado
Vea _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros códigos de retorno.
La fecha se puede cambiar en un archivo si la fecha del cambio es después de la medianoche, el 1 de enero de 1970, y antes de la fecha de finalización de la función utilizada. _utime y _wutime utilizan un valor de hora 64 bits, por lo que la fecha de finalización es 23:59: 59, el 31 de diciembre, 3000, la hora UTC. Si _USE_32BIT_TIME_T se define para forzar el comportamiento antiguo, la fecha de finalización es 03:14: 7 de enero de 19, 2038, La hora UTC. _utime32 o el uso de _wutime32 un plazo de 32 bits tipo independientemente _USE_32BIT_TIME_T se define, y siempre tiene la fecha de finalización anterior. _utime64 o de _wutime64 el uso siempre el tipo de 64 bits del tiempo, por lo que estas funciones admite siempre la fecha de finalización posterior.
Comentarios
La función de _utime establece la hora de modificación para el archivo especificado por filename. El proceso debe tener acceso de escritura al archivo para cambiar el tiempo. En el sistema operativo Windows, puede cambiar el tiempo de acceso y el tiempo de modificación en la estructura de _utimbuf . Si times es un puntero de NULL , el tiempo de modificación se establece en la hora local actual. Si no, times debe señalar a una estructura de _utimbufescrito, definida en SYS\UTIME.H.
La estructura de _utimbuf almacena los tiempos de acceso a archivos y modificar utilizados por _utime a las fechas del archivo (el archivo modificar el cambio. La estructura tiene los siguientes campos, que son ambos time_ttipo:
actime
Hora de acceso a archivosmodtime
Hora de modificación del archivo
Las versiones específicas de la estructura de _utimbuf (_utimebuf32 y __utimbuf64) se definen mediante la versión de 32 bits y la de 64 bits del tiempo. Estos se utilizan en versiones concretas de 32 bits y 64 bits de esta función. _utimbuf sí mismo de forma predeterminada utiliza un tiempo 64 bits tipo a menos que se defina _USE_32BIT_TIME_T .
_utime es idéntico a _futime salvo que el argumento de filename de _utime es un nombre de archivo o ruta de acceso a un archivo, en lugar de 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.
Asignaciones de rutina 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
Rutina |
Encabezados necesarios |
Encabezados opcionales |
---|---|---|
_utime, _utime32, _utime64 |
<sistema/utime.h> |
<errno.h> |
_utime64 |
<sistema/utime.h> |
<errno.h> |
_wutime |
<utime.h o> wchar.h <> |
<errno.h> |
Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.
Ejemplo
Este programa utiliza _utime para establecer el tiempo del archivo (el archivo modificación a 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" );
}
Resultados del 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
Equivalente en .NET Framework
No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.
Vea también
Referencia
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32