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

Требования

Функция Обязательный заголовок Необязательный заголовок
_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

См. также

Управление временем