Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

fstat

fstat


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

Синтаксис          #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;
}

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог