_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 anEINVAL
Ungültiges Argument timesEMFILE
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
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32