864_____________________________________________Глава 14

st_size        размер файла в байтах

st_atime      время последнего открытия (в Windows) или изменения (в DOS)

st_mtime     то же, что st_atime

st_ctime      то же, что st_atime

Маска st_mode содержит информацию о режиме открытого файла и включает
в себя следующие биты.

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

S_IFCHR      если дескриптор ссылается на устройство
S_IFREG      если дескриптор ссылается на обычный файл

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

S_IWRITE    пользователю разрешена запись в файл
S_IREAD     пользователю разрешено чтение из файла

Системы HPFS и NTFS учитывают следующее различие между полями st_ati-
me, st_mtime и st_ctime:

st_atime      время последнего доступа к файлу
st_mtime      время последней модификации файла
st_ctime       время создания файла

Следующий пример демонстрирует работу функции stat:

#include <stdio.h>
ftinclude <time.h>

#include <sys\stat.h>

struct stat statbuf;

FILE *stream;

if ((stream = fopen("TEST.TXT", "r+t")) == NULL)
{

ShowMessage("Невозможно открыть файл");

return;

}

stat("TEST.TXT", sstatbuf);              // чтение информации

fclose(stream) ;

// отображение информации:

if (statbuf.st_mode & S_IFCHR)

Memol->Lines->Add("Дескрипотр устройства");

if (statbuf.st_mode & S_IFREG)

Memol->Lines->Add("Ссьшка на файл");

if (statbuf.st_mode & S_IREAD)

Memol->Lines->Add("Разрешено чтение из файла");

if (statbuf.st_mode & S_IWRITE)

Memol->Lines->Add("Разрешена запись в файл");

Memol->Lines->Add("Файл расположен на диске " +

AnsiString((char)('A'+statbuf.st_dev))) ;

Memol->Lines->Add("Размер файла в байтах: " +