[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Что такое файл ?
Файл представляет собой последовательность байтов, никак не
организованных операционной системой. Прикладной программе файл
представляется непрерывной последовательностью байтов, хотя физически
эти байты могут быть не последовательными. Не существует разницы между
файлами, представляющими двоичные данные и текстовые данные. Каждый
байт дискового файла адресуется индивидуально.
Вновь созданный файл не содержит пространства для данных. Пространство
под данные предоставляется при записи в дисковый файл. Система хранит
и выделяет блоки под данные.
Размер файла хранится в структуре данных, называемой inode. В самом
файле не присутствует признака конца файла.
Системные вызовы ввода/вывода, в отличие от стандартных библиотечных
функций, производят небуферизованный ввод/вывод. Ваша программа несет
ответственность за преобразование (если оно необходимо) внешнего
формата представления данных в требуемое представление. Например,
функция atoi(3) удобна для преобразование данных из текстового
цифрового вида во внутреннее машинное двоичное представление.
Операционная система UNIX рассматривает файл, как универсальный
интерфейс с физическим устройством. Многие системные вызовы,
применимые к файлам, могут быть применены и к байт- или блок-
ориентированным устройствам. Однако некоторые вызовы, наподобие
lseek(2), которые изменяют позицию ввода/вывода, неприменимы к файлам
терминальных устройств. В следующем разделе вы научитесь управлять
специальными терминальными файлами.
Рассмотрим следующую программу:
main()
{
     printf("hi world\n");
}
В ней вызывается printf(3C), который, в свою очередь, вызывает
write(2) от файлового дескриптора 1. Программа не потребует изменений,
если вывод перенаправляется в файл или на другой терминал. Система
UNIX ищет устройство или файл, ассоциированное с дескриптором 1, и
вызывает требуемый драйвер устройства.
                           ЧТО ТАКОЕ ФАЙЛ ?
.    последовательность байтов
.    операционная система не накладывает никакого формата
.    каждый байт дискового файла адресуется индивидуально
.    дисковый файл автоматически расширяется при записи
.    метка конца файла не входит в данные файла
.    файл также является универсальным интерфейсом с внешним
устройством