_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64
Définit l'heure de modification du fichier.
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 vers une chaîne qui contient le chemin d'accès ou le nom de fichier.times
Pointeur vers les valeurs d'heure stockées.
Valeur de retour
Chacune de ces fonctions retourne 0 si le temps de modification de fichier est modifié. Une valeur de retour de -1 indique une erreur. Si un paramètre invalide est passé, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à continuer, ces fonctions retournent -1 et errno a une des valeurs suivantes :
EACCES
Le chemin d'accès spécifie le répertoire ou fichier en lecture seuleEINVAL
Argument non valide timesEMFILE
Trop de fichiers ouverts ( le fichier doit être ouvert pour modifier son heure de modification)ENOENT
Fichier ou chemin d'accès introuvable.
Consultez _doserrno, errno, _sys_errlist et _sys_nerr pour plus d'informations sur ces éléments et autres codes de retour.
La date est changeable pour un fichier si la date de modification a lieu après minuit, le 1er janvier 1970, et avant la date de fin de la fonction utilisée. _utime et _wutime utilisent une valeur d'heure 64 bits, la date de fin est 23:59:59, le 31 décembre, 3000, UTC. Si _USE_32BIT_TIME_T est défini pour forcer le comportement antérieur, la date de fin est 03:14:07, le 19 janvier, 2038, UTC. _utime32 ou _wutime32 utilisent un type d'heure 32 bits que _USE_32BIT_TIME_T soit défini ou non, et conservent la date de fin plus rapprochée. _utime64 ou _wutime64 utilisent toujours le type d'heure 64 bits, et ces fonctions prennent toujours en charge la date de fin plus tardive.
Notes
La fonction _utime définit l'heure de modification du fichier spécifié par filename*.* Le processus doit disposer d'un accès en écriture au fichier pour modifier l'heure. Dans le système d'exploitation Windows, vous pouvez modifier l'heure d'accès et l'heure de modification de la structure _utimbuf. Si times est un pointeur NULL, l'heure de modification est définie à l'heure locale actuelle. Sinon, times doit pointer vers une structure de type _utimbuf, définie dans SYS.\UTIME.H.
La structure _utimbuf stocke les heures d'accès au fichier et de modification utilisés par _utime pour changer les dates de modification de fichier. La structure contient les champs suivants, qui sont tous deux de type time_t:
actime
Heure d'accès au fichiermodtime
heure de modification de fichier
Les versions spécifiques de la structure _utimbuf (_utimebuf32 et __utimbuf64) sont définies à l'aide des versions 32 bits et 64 bits du type d'heure. Elles sont utilisées dans les versions spécifiques 32 bits et 64 bits de cette fonction. _utimbuf elle-même utilise par défaut un type d'heure 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 d'accès d'un fichier, plutôt qu'un descripteur de fichier d'un fichier ouvert.
_wutime est une version à caractères larges de _utime; l'argument filename vers _wutime est une chaîne à caractères larges. Ces fonctions se comportent sinon de façon identique.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE & _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tutime |
_utime |
_utime |
_wutime |
_tutime32 |
_utime32 |
_utime32 |
_wutime32 |
_tutime64 |
_utime64 |
_utime64 |
_wutime64 |
Configuration requise
Routine |
En-têtes requis |
En-têtes facultatifs |
---|---|---|
_utime, _utime32, _utime64 |
<système/utime.h> |
<errno.h> |
_utime64 |
<système/utime.h> |
<errno.h> |
_wutime |
<utime.h> or <wchar.h> |
<errno.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
Exemple
Ce programme utilise _utime pour définir la durée de modification de fichier à l'heure actuelle.
// 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" );
}
Résultat de l'exemple
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
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.
Voir aussi
Référence
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32