CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
fstat - взять статус файла
Описание
Извлекает информацию относительно открытого файла fd и
запоминает ее в структуре stat по указателю buf. Струк-
тура содержит следующие поля:
st_dev - номер дискового устройства с файлом fd
или значение fd, если fd является уст-
ройством
st_mode - битовая маска, содержащая информацию
об открытии файла:
S_IFCHR - если fd является устройством
S_IFREG - если fd - обычный файл
S_IREAD - если файл открыт по чтению
S_IWRITE - если файл открыт по записи
st_nlink - всегда 1
st_rdev - то же, что и st_dev
st_size - размер файла в байтах
st_atime - время последней модификации
st_ctime - то же, что и st_atime
st_mtime - то же, что и st_atime
Три не упомянутых выше поля: st_ino, st_vid, st_did, -
не имеют смысла в DOS. Они установлены в 0 и обеспечи-
вают совместимость с UNIX.
Замечание: fstat не может быть вызван из C++ программы
Использование
#include <sys\stat.h>
int fstat(int fd, struct stat *buf);
Возвращаемое значение
Возвращает 0, если информация успешно извлечена, и -1,
если плох дескриптор файла, с установкой errno в EBADF.
Пример
#include <dos.h>
#include <sys\stat.h>
#include <stdio.h>
#include <io.h>
#include <time.h>
#include <errno.h>
struct stat buf;
int fh, result;
main()
{
fh=open("file.dat", O_RDONLY);
result=fstat("fh, &buf");
if (result !=0)
printf("Плох дескриптор файла\n");
else
{
printf("Размер файла: %ld\n", buf.st_size);
printf("Номер устройства: %d\n", buf.st_dev);
printf("Время модификации: %s",
ctime(&buf.st_atime));
}
}
Рекомендация
Смотрите также stat, findfirst, findnext, isatty.
