_futime
, _futime32
_futime64
Legt das Änderungsdatum einer offenen Datei fest
Syntax
int _futime(
int fd,
struct _utimbuf *filetime
);
int _futime32(
int fd,
struct __utimbuf32 *filetime
);
int _futime64(
int fd,
struct __utimbuf64 *filetime
);
Parameter
fd
Dateideskriptor der geöffneten Datei
filetime
Zeiger auf die Struktur, die das neue Änderungsdatum enthält
Rückgabewert
Gibt bei Erfolg 0 zurück. Wenn ein Fehler auftritt, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die Ausführung fortgesetzt werden darf, gibt die Funktion "-1" zurück und errno
ist auf EBADF
", der einen ungültigen Dateideskriptor angibt, oder EINVAL
, der einen ungültigen Parameter angibt.
Hinweise
Die _futime
Routine legt das Änderungsdatum und die Zugriffszeit für die geöffnete Datei fest, die zugeordnet fd
ist. _futime
ist identisch mit _utime
der Ausnahme, dass es sich bei dem Argument um den Dateideskriptor einer geöffneten Datei und nicht um den Namen einer Datei oder eines Pfads zu einer Datei handelt. Die _utimbuf
-Struktur enthält Felder für das neue Änderungsdatum und den neuen Zugriffszeitpunkt. Beide Felder müssen gültige Werte enthalten. _utimbuf32
und _utimbuf64
sind nahezu identisch mit _utimbuf
, allerdings verwenden beide 32-Bit- und 64-Bit-Uhrzeittypen. _futime
und _utimbuf
verwenden einen 64-Bit-Uhrzeittyp, und _futime
verhält sich genauso wie _futime64
. Wenn Sie das alte Verhalten erzwingen möchten, definieren Sie _USE_32BIT_TIME_T
. Dadurch wird das Verhalten von _futime
und _futime32
identisch und die _utimbuf
-Struktur, den 32-Bit-Uhrzeittyp zu verwenden, sodass er __utimbuf32
entspricht.
_futime64
verwendet die __utimbuf64
Struktur und kann Datumsangaben bis 23:59:59 am 31. Dezember 3000 (UTC) lesen und ändern. Ein Aufruf von _futime32
schlägt jedoch fehl, wenn das Datum für die Datei weiter als 23:59:59 am 18. Januar 2038 UTC in der Zukunft liegt. Der 1. Januar 1970 (Mitternacht) ist der älteste mögliche Datumsbereich für diese Funktionen.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Funktion | Erforderlicher Header | Optionaler Header |
---|---|---|
_futime |
<sys/utime.h> | <errno.h> |
_futime32 |
<sys/utime.h> | <errno.h> |
_futime64 |
<sys/utime.h> | <errno.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_futime.c
// This program uses _futime to set the
// file-modification time to the current time.
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <io.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/utime.h>
#include <share.h>
int main( void )
{
int hFile;
// Show file time before and after.
system( "dir crt_futime.c_input" );
_sopen_s( &hFile, "crt_futime.c_input", _O_RDWR, _SH_DENYNO, 0 );
if( _futime( hFile, NULL ) == -1 )
perror( "_futime failed\n" );
else
printf( "File time modified\n" );
_close (hFile);
system( "dir crt_futime.c_input" );
}
Eingabe: crt_futime.c_input
Arbitrary file contents.
Beispielausgabe
Volume in drive Z has no label.
Volume Serial Number is 5C68-57C1
Directory of Z:\crt
03/25/2004 10:40 AM 24 crt_futime.c_input
1 File(s) 24 bytes
0 Dir(s) 24,268,476,416 bytes free
Volume in drive Z has no label.
Volume Serial Number is 5C68-57C1
Directory of Z:\crt
03/25/2004 10:41 AM 24 crt_futime.c_input
1 File(s) 24 bytes
0 Dir(s) 24,268,476,416 bytes free
File time modified