Freigeben über


_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64

Legen Sie die Dateiänderungszeit fest.

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

Parameter

  • filename
    Zeiger auf eine Zeichenfolge, die den Pfad oder Dateiname enthält.

  • times
    Zeiger zu gespeicherten Zeitwerten.

Rückgabewert

Jede dieser Funktionen gibt 0 zurück, wenn die DateiÄnderungszeit geändert wurde. Bei dem Rückgabewert von 1 gibt einen Fehler an. Wenn ein ungültiger Parameter übergeben wird, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, geben diese Funktionen -1 zurück und errno auf einen der folgenden Werte festgelegt:

  • EACCES
    Pfad gibt Verzeichnis oder schreibgeschützter Datei an

  • EINVAL
    Ungültiges Argument times

  • EMFILE
    So viele Dateien geöffnet (die Datei müssen geöffnet werden, um die Änderungszeit zu ändern)

  • ENOENT
    Pfad bzw. Dateiname nicht gefunden

Weitere Informationen zu diesen und anderen Rückgabecodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.

Das Datum kann als Datei geändert werden, wenn das Änderungsdatum nach Mitternacht, am 1. Januar 1970 ist, und vor dem Enddatum der verwendete Funktion. _utime und _wutime verwenden einen 64-Bit-Zeitwert, sodass das Enddatum 23:59: 59 3000 am 31. Dezember, UTC. Wenn _USE_32BIT_TIME_T definiert wurde, um das alte Verhalten zu erzwingen, ist das Enddatum 03:14: Am 7. Januar 19 2038, UTC. _utime32 oder _wutime32 mit einem 32-Bit-Zeittyp unabhängig davon, ob _USE_32BIT_TIME_T definiert und hat immer das frühere Enddatum. _utime64 oder _wutime64 verwendet immer der 64-Bit-Zeittyp, sodass diese Funktionen unterstützt immer das spätere Enddatum.

Hinweise

Die _utime-Funktion wird die Änderungszeit der Datei fest, die von filename angegeben wird . Der Prozess muss Schreibzugriff auf die Datei verfügen, um die Zeit zu ändern. Im Windows-Betriebssystem können Sie die die Änderungszeit Zugriffs und in _utimbuf der Struktur ändern. Wenn times ein NULL Zeiger ist, ist die Änderungszeit auf die aktuelle lokale Zeit festgelegt. Andernfalls muss times auf einer Struktur des Typs _utimbuf werden, die in SYS\UTIME.H.

Die _utimbuf-Struktur speichert Dateizugriff und Änderung wird von _utime verwendet Zeit fest, um DateiÄnderungsdatumsangaben zu ändern. Die Struktur hat die folgenden Felder, die beide von Typ time_t sind:

  • actime
    Zeit des Datei-

  • modtime
    Zeit der Dateiänderung

Bestimmte Versionen _utimbuf der Struktur (_utimebuf32 und __utimbuf64) werden mit den 32-Bit- und 64-Bit-Versionen des Zeittyps definiert. Diese werden in den 32-Bit- und 64-Bit-Versionen von diesem bestimmten Funktion verwendet. _utimbuf selbst verwendet standardmäßig einen 64-Bit-Zeittyp, es sei denn, _USE_32BIT_TIME_T definiert wird.

_utime ist mit _futime identisch, dass filename das Argument von _utime ist ein Dateiname oder ein Pfad zu einer Datei, keinen Dateideskriptor einer geöffneten Datei.

_wutime ist eine Breitzeichenversion von _utime. Das filename-Argument für _wutime ist eine Breitzeichenfolge. Anderenfalls verhalten sich diese Funktionen identisch.

Zuordnung generischer Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tutime

_utime

_utime

_wutime

_tutime32

_utime32

_utime32

_wutime32

_tutime64

_utime64

_utime64

_wutime64

Anforderungen

Routine

Erforderliche Header

Optionale Header

_utime, _utime32, _utime64

<sys/utime.h>

<errno.h>

_utime64

<sys/utime.h>

<errno.h>

_wutime

<utime.h oder> wchar.h <>

<errno.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

Dieses Programm verwendet _utime, um die DateiÄnderungszeit auf die aktuelle Zeit einzustellen.

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

Beispielausgabe

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

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Uhrzeitverwaltung

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- und _wstat-Funktionen

time, _time32, _time64