CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
fstat
FSTAT
#include <sys\types.h>
#include <sys\stat.h>
int fstat(handle,buffer);
int handle; handle-р, ссылающийся на открытый файл.
struct stat *buffer; указатель на структуру хранения ре-
зультатов.
Описание:
Функция fstat получает информацию об открытом файле, свя-
занным с данным handle-ром, и запоминает ее в структуре, на кото-
рую указывает buffer. Структура, тип stat которой объявлен в
<sys\stat.h>, содержит следующие поля:
Поле Значение
st_mode Битовая маска для информации о режиме
файла. Бит S_IFCHR устанавливается,
если handle ссылается на устройство.
Бит S_IFREG устанавливается, если
handle ссылается на обычный файл. Биты
чтения/записи пользователей устанавли-
ваются соответственно режиму доступа
для файла.
st_dev Либо номер устройства диска,содержащего
файл, либо handle - в случае другого
устройства.
st_rdev Либо номер устройства диска,содержащего
файл, либо handle - в случае другого
устройства
(аналогично st_dev).
st_nlink Всегда 1.
st_size Размер файла в байтах.
st_atime Время последней модификации файла.
st_mtime Время последней модификации файла
(аналогично st_atime).
st_ctime Время последней модификации файла
(аналогично st_atime и st_mtime).
В структуре типа stat существуют три дополнительных поля,
которые для MS DOS не имеют смысла.
Возвращаемое значение:
Функция fstat возвращает значение 0, если информация о ста-
тусе файла получена. Возвращаемое значение -1 свидетельствует об
ошибке; в этом случае errno устанавливается в EBADF, определяя
тем самым неверный файловый handle.
См.также access, chmode, filelength, stat.
Замечание! Если заданный handle ссылается на устройство,
поля размера и времени в структуре stat не имеют смысла.
Пример.
#include <fcntl.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <stdio.h>
struct stat buf;
int fh, result;
fh=open("tmp/data", O_RDONLY);
.
.
.
result=fstat(fh,&buf);
if (result==0)
printf("file size is %ld\n",buf.st_size);
