_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_errlist
a _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 _utimbuf
definované 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.
_wutime
je verze širokého znaku _utime
filename
; 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