Share via


_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64

Définissent l’heure de modification des fichiers.

Syntaxe

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

Paramètres

filename
Pointeur désignant une chaîne qui contient le chemin ou le nom de fichier.

times
Pointeur désignant les valeurs d’heure stockées.

Valeur retournée

Chacune de ces fonctions retourne 0 si l’heure de modification de fichier a changé. Une valeur de retour de -1 indique une erreur. Si un paramètre non valide est passé, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à continuer, ces fonctions retournent -1 et errno sont définies sur l’une des valeurs suivantes :

Valeur errno Condition
EACCES Le chemin indique le répertoire ou un fichier en lecture seule.
EINVAL Argument times non valide.
EMFILE Trop de fichiers ouverts (le fichier doit être ouvert pour modifier son heure de modification).
ENOENT Chemin ou nom de fichier introuvable.

Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno

La date d’un fichier peut être modifiée si la date de modification est postérieure au 1er janvier 1970 à minuit et antérieure à la date de fin de la fonction utilisée. _utime et _wutime utilisent une valeur d’heure de 64 bits, de sorte que la date de fin est le 31 décembre 3000, UTC à 23:59:59. Si _USE_32BIT_TIME_T est définie pour imposer l’ancien comportement, la date de fin est le 18 janvier 2038, UTC à 23:59:59. _utime32 ou _wutime32 utilisent un type d’heure de 32 bits, que la fonction _USE_32BIT_TIME_T soit ou non définie, et ont toujours la date de fin la plus ancienne. _utime64 ou _wutime64 utilisent toujours le type d’heure de 64 bits, si bien que ces fonctions prennent toujours en charge la date de fin la plus lointaine.

Notes

La _utime fonction définit l’heure de modification du fichier spécifié par filename. Pour que la modification de l’heure soit possible, le processus doit avoir un accès en écriture au fichier. Dans le système d’exploitation Windows, vous pouvez modifier l’heure d’accès et l’heure de modification dans la structure _utimbuf. Si times est un pointeur NULL, l’heure de modification correspond à l’heure locale du moment. Dans le cas contraire, times doit pointer vers une structure de type _utimbuf, définie dans SYS\UTIME.H.

La structure _utimbuf stocke les heures d’accès et de modification de fichier utilisées par _utime pour changer les dates de modification de fichier. La structure contient les champs suivants, qui sont tous deux de type time_t :

Champ Description
actime Heure d’accès au fichier.
modtime Heure de modification du fichier.

Des versions spécifiques de la structure _utimbuf (__utimbuf32 et __utimbuf64) sont définies avec les versions 32 bits et 64 bits du type d’heure. Ces structures sont utilisées dans les versions 32 bits et 64 bits spécifiques de cette fonction. La structure _utimbuf proprement dite utilise par défaut un type d’heure de 64 bits, à moins que _USE_32BIT_TIME_T soit défini.

_utime est identique à _futime, sauf que l’argument filename de _utime est un nom de fichier ou un chemin de fichier, et non un descripteur de fichier ouvert.

_wutime est une version à caractères larges de _utime; l'argument filename de _wutime est une chaîne à caractères larges. Ces fonctions se comportent sinon de façon identique.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_tutime _utime _utime _wutime
_tutime32 _utime32 _utime32 _wutime32
_tutime64 _utime64 _utime64 _wutime64

Spécifications

Routine En-têtes obligatoires En-têtes facultatifs
_utime, _utime32, _utime64 <sys/utime.h> <errno.h>
_utime64 <sys/utime.h> <errno.h>
_wutime <utime.h> ou <wchar.h> <errno.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

Ce programme utilise _utime pour fixer l’heure de modification de fichier à l’heure du moment.

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

Exemple de sortie

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

Voir aussi

Gestion des horaires
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 fonctions
time, _time32, _time64