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.