Compartir a través de


_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 lectura

  • EINVAL
    Argumento no válido de times

  • EMFILE
    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 archivos

  • modtime
    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

Administración del 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

_stat, _wstat (Funciones)

time, _time32, _time64