_utime, _utime32 _utime64, _wutime, _wutime32, _wutime64
Ustawianie czasu modyfikacji pliku.
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
);
Parametry
filename
Wskaźnik, aby ciąg, który zawiera ścieżkę lub nazwę pliku.times
Wskaźnik do przechowywanych wartości czasu.
Wartość zwracana
Każda z tych funkcji zwraca wartość 0, jeśli zmieniono czas modyfikacji pliku.Zwracana wartość –1 wskazuje na błąd.Jeżeli nie przekazano nieprawidłowy parametr, nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje te zwracają wartość -1 i errno jest ustawiona na jeden z następujących wartości:
EACCES
Ścieżka Określa katalog lub plik tylko do odczytuEINVAL
Nieprawidłowy times argumentEMFILE
Zbyt wiele otwartych plików (pliku muszą być otwarte, aby zmienić jego czas modyfikacji)ENOENT
Ścieżka lub nazwa pliku nie znaleziono
Zobacz _doserrno, errno, _sys_errlist i _sys_nerr uzyskać więcej informacji o tych i innych, kody zwracane.
Datę można zmienić dla pliku, jeśli zmiana daty po północy, 1 stycznia 1970 r. i przed datą zakończenia używana funkcja._utimei _wutime Użyj wartości czasu 64-bitowym, więc Data końcowa jest 23: 59: 59, 31 grudnia, 3000, UTC.Jeśli _USE_32BIT_TIME_T jest zdefiniowany wymusić starego zachowania, Data końcowa jest 03: 14: 07 19 stycznia 2038, UTC._utime32lub _wutime32 użyć typu czas 32-bitowych, niezależnie od czy _USE_32BIT_TIME_T jest zdefiniowana i zawsze mieć wcześniejszej daty zakończenia._utime64lub _wutime64 zawsze używać typu Godzina 64-bitowym, więc te funkcje obsługi zawsze później Data zakończenia.
Uwagi
_utime Funkcja ustawia czas modyfikacji pliku określonego przez filename*.* Proces musi mieć dostęp do zapisu do pliku, aby zmienić czas.W systemie operacyjnym Windows, można zmienić czas dostępu i godzina modyfikacji w _utimbuf struktury.Jeśli times jest NULL wskaźnik, godzina modyfikacji jest ustawiony na bieżący czas lokalny.W przeciwnym razie times muszą odnosić się do struktury typu _utimbuf, określonych w SYS\UTIME.H.
_utimbuf Struktury przechowuje czasy dostępu i modyfikacji plików używane przez _utime do zmiany daty modyfikacji pliku.Struktura ma następujące pola, które są zarówno typu time_t:
actime
Czas dostępu do plikumodtime
Godzina modyfikacji pliku
Określonej wersji _utimbuf struktury (_utimebuf32 i __utimbuf64) są definiowane przy użyciu wersji 32-bitowych i 64-bitowych typu Godzina.Są one używane w wersjach 32-bitowych i 64-bitowych szczególnych tej funkcji._utimbufsam domyślnie używa typu czasu 64-bitowych, chyba że _USE_32BIT_TIME_T jest zdefiniowany.
_utimejest taka sama, jak _futime z wyjątkiem, że filename argumentu _utime jest nazwa pliku lub ścieżkę do pliku zamiast deskryptor pliku otwartego pliku.
_wutimejest to wersja szerokich znaków _utime; filename argument _wutime jest łańcuch szerokich znaków.Te funkcje działają identycznie inaczej.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rutynowe H |
_UNICODE & Nie zdefiniowano _MBCS |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tutime |
_utime |
_utime |
_wutime |
_tutime32 |
_utime32 |
_utime32 |
_wutime32 |
_tutime64 |
_utime64 |
_utime64 |
_wutime64 |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymagane nagłówki |
Opcjonalna nagłówki |
---|---|---|
_utime, _utime32, _utime64 |
<sys/utime.h> |
<errno.h> |
_utime64 |
<sys/utime.h> |
<errno.h> |
_wutime |
<utime.h> lub <wchar.h> |
<errno.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
Program ten korzysta z _utime Aby ustawić czas modyfikacji pliku do bieżącego czasu.
// 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" );
}
Przykładowe dane wyjściowe
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
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.
Zobacz też
Informacje
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32