_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 letturaEINVAL
Argomento times non validoEMFILE
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 filemodtime
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
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32