Sdílet prostřednictvím


_utime, _utime32, _utime64, _wutime, , _wutime32_wutime64

Nastavte čas změny souboru.

Syntaxe

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
Ukazatel na řetězec, který obsahuje cestu nebo název souboru.

times
Ukazatel na uložené časové hodnoty

Vrácená hodnota

Každá z těchto funkcí vrátí hodnotu 0, pokud došlo ke změně času změny souboru. Návratová hodnota -1 označuje chybu. Pokud je předán neplatný parametr, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je možné pokračovat spuštěním, vrátí tyto funkce hodnotu -1 a errno nastaví se na jednu z následujících hodnot:

errno hodnota Podmínka
EACCES Cesta určuje adresář nebo soubor jen pro čtení.
EINVAL Neplatný times argument
EMFILE Příliš mnoho otevřených souborů (soubor se musí otevřít, aby se změnil čas jeho změny)
ENOENT Cesta nebo název souboru nebyl nalezen.

Další informace o návratových kódech naleznete v tématu errno, _doserrno, _sys_errlista _sys_nerr.

Datum lze u souboru změnit, pokud je datum změny po půlnoci, 1. lednu 1970 a před koncovým datem použité funkce. _utime a _wutime použijte 64bitovou časovou hodnotu, takže koncové datum je 23:59:59, 31. prosince 3000, UTC. Pokud _USE_32BIT_TIME_T je definováno vynucení starého chování, koncové datum je 23:59:59 18, 2038 UTC. _utime32 nebo _wutime32 použijte 32bitový typ času bez ohledu na to, zda _USE_32BIT_TIME_T je definován, a vždy mít dřívější koncové datum. _utime64 nebo _wutime64 vždy používejte 64bitový typ času, takže tyto funkce vždy podporují pozdější koncové datum.

Poznámky

Funkce _utime nastaví čas úpravy souboru určeného parametrem filename. Aby mohl proces změnit čas, musí mít k souboru přístup pro zápis. V operačním systému Windows můžete změnit dobu přístupu a čas úpravy ve struktuře _utimbuf . Pokud times je NULL ukazatel, čas změny je nastaven na aktuální místní čas. times Jinak musí odkazovat na strukturu typu _utimbufdefinované v SYS\UTIME.H.

Struktura _utimbuf ukládá přístup k souborům a časy úprav, které _utime se používají ke změně dat úprav souborů. Struktura má následující pole, která mají oba typy time_t:

Pole Popis
actime Čas přístupu k souborům
modtime Čas změny souboru

Konkrétní verze _utimbuf struktury (__utimbuf32 a __utimbuf64) jsou definovány pomocí 32bitové a 64bitové verze časového typu. Tyto struktury se používají v 32bitových a 64bitových verzích této funkce. _utimbuf ve výchozím nastavení používá 64bitový typ času, pokud _USE_32BIT_TIME_T není definován.

_utime je shodný s _futime tím rozdílem, že filename argument _utime je název souboru nebo cesta k souboru, nikoli popisovač souboru otevřeného souboru.

_wutimeje verze širokého znaku _utimefilename ; argument je _wutime řetězec širokého znaku. Tyto funkce se chovají stejně jinak.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

Rutina TCHAR.H _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_tutime _utime _utime _wutime
_tutime32 _utime32 _utime32 _wutime32
_tutime64 _utime64 _utime64 _wutime64

Požadavky

Rutina Povinná záhlaví Volitelná záhlaví
_utime, , _utime32_utime64 <sys/utime.h> <errno.h>
_utime64 <sys/utime.h> <errno.h>
_wutime <utime.h> nebo <wchar.h> <errno.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

Tento program používá _utime k nastavení času úpravy souboru na aktuální čas.

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

Ukázkový výstup

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

Viz také

Správa času
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 funkce
time, , _time32_time64