_futime
, , _futime32
_futime64
Задает время изменения открытого файла.
Синтаксис
int _futime(
int fd,
struct _utimbuf *filetime
);
int _futime32(
int fd,
struct __utimbuf32 *filetime
);
int _futime64(
int fd,
struct __utimbuf64 *filetime
);
Параметры
fd
Дескриптор открытого файла.
filetime
Указатель на структуру, содержащую новую дату изменения.
Возвращаемое значение
Возвращает 0 в случае успеха. При возникновении ошибки вызывается обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение разрешено продолжать, функция возвращает значение -1 и errno
имеет значение EBADF
, указывающее недопустимый дескриптор файла или EINVAL
указывающий недопустимый параметр.
Замечания
Подпрограмма _futime
задает дату изменения и время доступа в открытом файле, связанном с fd
. _futime
идентичен _utime
, за исключением того, что его аргумент является дескриптором файла открытого файла, а не именем файла или пути к файлу. Структура _utimbuf
содержит поля с новой датой изменения и временем доступа. Оба поля должны содержать допустимые значения. Функции _utimbuf32
и _utimbuf64
идентичны функции _utimbuf
, однако используют 32- и 64-разрядные типы времени соответственно. Функции _futime
и _utimbuf
используют 64-разрядный тип времени, и функция _futime
по поведению идентична функции _futime64
. Чтобы применить старое поведение принудительно, определите _USE_32BIT_TIME_T
. В связи с этим функция _futime
идентична по поведению функции _futime32
и задает для структуры _utimbuf
использование 32-разрядного типа времени, что делает ее эквивалентом структуры __utimbuf32
.
Функция _futime64
, которая использует структуру __utimbuf64
, поддерживает считывание и изменение дат вплоть до 23:59:59 31 декабря 3000 года в формате UTC. При этом вызов функции _futime32
завершается сбоем, если файл имеет дату позже 23:59:59 18 января 2038 года в формате UTC. Полночь 1-го января 1970 года — нижняя граница диапазона дат для этих функций.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Function | Обязательный заголовок | Необязательный заголовок |
---|---|---|
_futime |
<sys/utime.h> | <errno.h> |
_futime32 |
<sys/utime.h> | <errno.h> |
_futime64 |
<sys/utime.h> | <errno.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// 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" );
}
Входные данные: crt_futime.c_input
Arbitrary file contents.
Пример полученных результатов
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