C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 fstat / f / Библиотечн. функции Borland C++

Функция Получает информацию об открытом файле.


Синтаксис          #include <sys\stat.h>
                   int fstat(char * handle, struct stat * buff)

Файл, содержащий   sys\stat.h
прототип

Описание           Функция fstat  записывают  информацию  об  открытом
                   файле  (или  директории),  связанным с дескриптором
                   handle в структуру  stat.  Aргумент  buff  адресует
                   структуру  stat  (определенную в файле sys\stat.h).
                   Структура содержит следующие поля:

                   st_mode - битовая маска, дающая информацию о режиме
                             открытия файла;

                   st_dev - идентификатор дисковода,  на  котором  был
                            открыт файл,  или номер handle,  если файл
                            находится на устройстве;

                   st_rdev - так же, как и st_dev;

                   st_nlink - присваевается целая константа 1;

                   st_size - размер открытого файла в байтах;

                   st_atime - ближайшее время открытия файла, во время
                              которого он был модифицирован;

                   st_mtime - так же, как и st_atime;

                   st_ctime - так же, как и st_atime.

                   Структура stat  содержит  на  три поля больше,  чем
                   перечислено выше,  они содержат данные, которые под
                   управлением DOS не имеют значения.

                   Битовая маска, дающая информацию о режиме открытого
                   файла, содержит следующие биты:

                   Один из следующих битов должен быть установлен:

                   S_IFCHR -   установлен,   если   параметр    handle
                               указывает на устройство (fstat);

                   S_IFREG -    установлен,    если    обычный    файл
                                определяется параметром handle

                   Один или   оба   следующих   бита    должны    быть
                   установлены:

                   S_IWRITE -   установлен,  если  пользователь  имеет
                                разрешение на запись;

                   S_IREAD -  установлен,  если   пользователь   имеет
                              разрешение на чтение.

                   Битовая маска  также имеет биты чтения/записи,  они
                   устанавливаются в соответствии с режимом доступа  к
                   файлу.

Возвращаемое       Если информация об открытом файле была успешно по-
значение           лучена, функция возвращают значение 0. В случае
                   ошибки (невозможно  получить  информацию),  функция
                   возвращает -1 и присваивают переменной errno:

                   EBADF - Неверный номер файла.

Смотрите также     access, chmod, stat.

Пример:

#include<sys\stat.h>
#include<stdio.h>
#include<time.h>

int main(void)
{
   struct stat statbuf;
   FILE *stream;
   /* открыть файл для изменения */
   if((stream = fopen("DUMMY.FIL","w+")) == NULL)
   {
      fprintf(stderr,"Не могу открыть файл.\n");
      return 1;
   }
   fprintf(stream,"Это тест");
   fflush(stream);
   /* получить информацию о файле */
   fstat(fileno(stream),&statbuf);
   /* вывести полученную информацию */
   if(statbuf.st_mode & S_IFCHR)
     printf("Это устройство\n");
   if(statbuf.st_mode & S_IFREG)
     printf("Это файл\n");
   if(statbuf.st_mode & S_IREAD)
     printf("Разрешение на чтение\n");
   if(statbuf.st_mode & S_IWRITE)
     printf("Разрешение на запись");
   printf("Метка диска:%c\n",'A'+statbuf.st_dev);
   printf("Размер в байтах: %ld\n",statbuf.st_size);
   printf("Время последнего открытия: %s\n",
           ctime(&statbuf.st_ctime));
   return 0;
}