Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

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

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


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS