_utime
, , _utime32
, _wutime
_utime64
, , _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é. La valeur renvoyée -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
_doserrno
et _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 routines de texte générique
Routine TCHAR.H | _UNICODE et _MBCS non définis |
_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
, _wctime
_ctime64
, , _wctime32
_wctime64
_fstat
, , _fstat32
, _fstati64
_fstat64
, , _fstat32i64
_fstat64i32
_ftime
, , _ftime32
_ftime64
_futime
, , _futime32
_futime64
gmtime
, , _gmtime32
_gmtime64
localtime
, , _localtime32
_localtime64
_stat
, fonctions _wstat
time
, , _time32
_time64