Назад | Оглавление | Далее |
Функция | Краткое описание |
---|---|
close | закрыть файл |
creat | создать файл |
dup | создать второй дескриптор (handle) для файла |
dup2 | переназначить дескриптор (handle) для файла |
eof | проверка на конец файла |
lseek | позиционирование указателя файла в заданное место |
open | открыть файл |
read | читать данные из файла |
sopen | открыть файл в режиме разделения |
tell | получить текущую позицию указателя файла |
write | записать данные в файл |
Система программирования ТС предоставляет дополнительно следующие функции:
Функция | Краткое описание |
---|---|
_creat | создать файл |
creatnew | создать новый файл |
creattemp | создать новый файл |
_open | открыть файл |
_read | чтение данных из файла |
_write | запись данных в файл |
Нижний уровень ввода и вывода не работает с буферизованными или форматированными данными. Для работы с файлами, открытыми посредством функции нижнего уровня, используется дескриптор файла (handle).
Для открытия файлов используются функции open и _open. В ОС MS/DOC версии 3.0 или выше может быть использована функция sopen для открытия файлов с атрибутами режима разделения файла.
Функции нижнего уровня, в отличие от функций верхнего уровня, не требуют включения файла stdio.h. Тем не менее нескольких общих констант, определенных в файле stdio.h, как, например, признак конца файла EOF, могут оказаться полезными. Если программа использует эти константы, необходимо включить файл stdio.h.
Прототипы функций нижнего уровня содержатся в файле io.h.
9.6.2.1. Открытие файлов
Файл должен быть открыт функциями open, sopen или creat до выполнения первой операции ввода или вывода с использованием функций нижнего уровня для этого файла.
Файл может быть открыт для чтения, записи, или для чтения и записи, может быть открыт в текстовом или в двоичном режиме.
Файл fcntl.h должен быть включен при открытии файла, так как содержит определения для флагов, используемых в функции open. В некоторых случаях также должны быть включены файлы sys\types.h и sys\stat.h.
Перечисленные функции возвращают дескриптор файла, который используется при последующих операциях с файлом. При вызове одной из функций открытия файла необходимо возвращаемое функцией значение присвоить целочисленной переменной и потом использовать значение этой переменной, чтобы обращаться к открытому файлу.
9.6.2.2. Переопределение дескрипторов (handle)
Когда программа начинает выполняться, пять дескрипторов (handle), соответствующих стандартным вводу, выводу, выводу сообщений об ошибках, порту и устройству печати, уже назначены. Пользователь может использовать значения этих дескрипторов при вызове функций ввода/вывода нижнего уровня.
Каждый из этих дескрипторов соответствует одному из стандартных потоков, значения этих дескрипторов таковы:
поток | значение дескриптора |
---|---|
stdin | 0 |
stdout | 1 |
stderr | 2 |
stdaux | 3 |
stdprn | 4 |
Можно использовать эти дескрипторы файлов в программе без предварительного открытия этих файлов. Они автоматически открываются при запуске программы.
Так же, как с функциями для потоков, Вы можете использовать перенаправление, чтобы переопределить стандартный ввод и вывод.
Функции dup и dup2 позволяют назначать несколько handle для одного файла; эти функции обычно используются, чтобы связать дополнительные дескрипторы с уже используемыми файлами.
9.6.2.3. Чтение и запись данных
Функции read и write, как и функции ввода/вывода верхнего уровня, начинают выполнение очередной операции с текущей позиции в файле. Текущая позиция изменяется при каждой операции чтения или записи.
Функция eof может быть использована для проверки на конец файла.
Когда происходит ошибка, программы в/в нижнего уровня присваивают код ошибки переменной errno. Можно использовать функцию perror для печати информации об ошибках в/в.
Можно позиционировать указатель файла на определенную позицию в файле, используя функцию lseek. Используя функцию tell, можно определить текущую позицию указателя файла.
Устройства типа консольного терминала не имеют указателя файла. Результат функций lseek и tell не определен, если они применяются к дескриптору, связанному с таким устройством.
9.6.2.4. Закрытие файлов
Функция close закрывает открытые файлы. Открытые файлы также автоматически закрываются при неаварийном завершении программы.
Назад | Оглавление | Далее |