Condividi tramite


_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64

Impostare l'ora di modifica del file.

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 
);

Parametri

  • filename
    Puntatore ad una stringa contenente il percorso o il nome del file.

  • times
    Puntatore ai valori di data e ora memorizzati.

Valore restituito

Ognuna di queste funzioni restituisce 0 se il tempo di modifica dei file è stato modificato. Un valore restituito pari a –1 indica un errore. Se viene passato un parametro non valido, viene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni restituiscono -1 e errno viene impostato ad uno dei seguenti valori:

  • EACCES
    Il percorso specifica la cartella o file di sola lettura

  • EINVAL
    Argomento times non valido

  • EMFILE
    Troppi file aperti (il file deve essere aperto per modificarne l'ora di modifica)

  • ENOENT
    Il percorso o il nome del file non è stato trovato.

Vedere _doserrno, errno, _sys_errlist, e _sys_nerr per ulteriori informazioni su questi, e altri, codici restituiti.

Per un file la data può essere modificata se la data di modifica è dopo la mezzanotte del 1° gennaio 1970 e prima della data di fine della funzione utilizzata. _utime e _wutime utilizzano un valore di data e ora a 64 bit, la data di fine corrisponde alle 23:59:59 del 31 Dicembre 3000, UTC. Se _USE_32BIT_TIME_T è definito per forzare il comportamento precedente, la data di fine corrisponde alle 03:14:07 del 19 Gennaio 2038, UTC. _utime32 o _wutime32 utilizzano un tipo di data e ora a 32 bit indipendentemente dal fatto che _USE_32BIT_TIME_T sia definito o meno ed hanno sempre la data di fine precedente. _utime64 o _wutime64 utilizzano sempre il tipo di tempo a 64 bit, in modo che queste funzioni supportino sempre la data di fine più tarda.

Note

La funzione _utime imposta l'ora di modifica per il file specificato da filename*.* Il processo deve avere accesso in scrittura al file per modificare il tempo. Nel sistema operativo Windows, è possibile modificare il tempo di accesso e l'ora di modifica nella struttura _utimbuf. Se times è un puntatore a NULL, l'ora di modifica viene impostata all'ora locale corrente. Altrimenti, times deve puntare ad una struttura di tipo _utimbuf, definita in SYS\UTIME.H.

La struttura _utimbuf memorizza gli accessi ai file e le ore di modifica utilizzate da _utime per modificare le date di modifica dei file. Una struttura contiene i seguenti campi, che sono entrambi tipo time_t:

  • actime
    Tempo di accesso al file

  • modtime
    Tempo della modifica del file

Versioni specifiche della struttura _utimbuf (_utimebuf32 e __utimbuf64) vengono definite mediante delle versioni a 32 bit e a 64 bit del tipo di tempo. Questi vengono utilizzati nelle versioni specifiche di questa funzione a 32 bit e 64 bit. Lo stesso _utimbuf per impostazione predefinita utilizza un tipo di tempo a 64 bit a meno che non sia definito _USE_32BIT_TIME_T.

_utime è identico a _futime con la differenza che l'argomento filename di _utime è un nome di file o un percorso di un file, anziché un descrittore di un file aperto.

_wutime è una versione a caratteri estesi di _utime; l'argomento filename in _wutime è una stringa di caratteri estesi. Altrimenti queste funzioni si comportano in modo identico.

Mapping di routine di testo generico

Routine TCHAR.H

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tutime

_utime

_utime

_wutime

_tutime32

_utime32

_utime32

_wutime32

_tutime64

_utime64

_utime64

_wutime64

Requisiti

Routine

Intestazioni necessarie

Intestazioni facoltative

_utime, _utime32, _utime64

<sys/utime.h>

<errno.h>

_utime64

<sys/utime.h>

<errno.h>

_wutime

<utime.h> o <wchar.h>

<errno.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.

Esempio

Questo programma utilizza _utime per impostare il tempo di modifica del file sull'ora corrente.

// 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" );
}

Esempio di output

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 .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Gestione del 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

Funzioni _stat, _wstat

time, _time32, _time64