Udostępnij za pośrednictwem


_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 odczytu

  • EINVAL
    Nieprawidłowy times argument

  • EMFILE
    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 pliku

  • modtime
    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

Zarządzanie czasem

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, _wstat funkcje

time, _time32, _time64