CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
fdopen
FDOPEN
#include <stdio.h>
FILE *fdopen (handle,type);
int handle; Handle-р, ссылающийся на отк-
рытый файл.
char type; Разрешенный тип доступа.
Описание:
Функция fdopen связывает поток ввода/вывода с файлом, иден-
тифицированным handle, что позволяет сделать файл, открытый как
низкоуровневый, форматированным и буферизованным. Более подробно
этот процесс описан в разделе 4.7 "Ввод и вывод" данного руковод-
ства. Символьная строка type определяет тип доступа к требуемому
файлу следующим образом:
ТИП ОПИСАНИЕ
"r" Открыть для чтения. (Этот файл должен
существовать).
"w" Открыть пустой файл для записи; если этот
файл ранее существовал, его содержимое
уничтожается.
"a" Открыть файл для записи (добавления) в
конец файла. Создать файл заново, если
его нет.
"r+" Файл открыт одновременно для чтения и
записи. Файл должен существовать.
"w+" Открыть пустой файл для чтения и записи.
Если этот файл существует, то его
сожержимое уничтожается.
"a+" Файл для чтения и добавления. Создать
файл заново, если его нет.
Замечание! Нужно внимательно применять режимы "w", "w+",
так как они могут уничтожить существующие файлы. Специфицирован-
ный type должен быть совместим с режимами доступа или sharing-ре-
жимом, с которым файл был открыт. За поддержку этой совместимости
отвечает пользователь.
Если файл открыт с типом "a" или "a+", все операции записи
выполняются в конец файла, хотя при использовании функций fseek
или rewind возможно перемещение файлового указателя; однако, пе-
ред выполнением любых операций записи он всегда возвращается в
конец файла. Таким образом, существующие данные не смогут быть
перезаписанными. Когда специфицированы типы "r+", "w", "a", од-
новременно допускается чтение и запись. (Говорят, что файл открыт
для обновления). Поэтому при переключении чтения на запись и на-
оборот, нужно использовать функции fseek или rewind. Для функции
fseek (при необходимости) может быть специфицирована текущая по-
зиция.
Дополнительно к значениям, приведенным выше, может быть до-
бавлен один из следующих символов к строке type, чтобы специфици-
ровать режим преобразования символов новой строки.
Символ Значение
t Открыть в текстовом (транслирующем)
режиме; ввод комбинации "Возврат каретки
- перевод строки" преобразовывать к
единственному символу "перевод строки".
Вывод символа "перевод строки" преобра-
зовывать в комбинацию "Возврат каретки -
перевод строки".
b Открыть в двоичном (нетранслирующем)
режиме; предшедствующие преобразования
подавляются.
Если t или b в строке type не заданы, то режим преобразова-
ния определяется переменной _fmode, устанавливаемой по умолчанию.
Возвращаемое значение.
Функция fdopen возвращает указатель на открытый поток. В
случае ошибки значение указателя равно NULL.
См. также dup, dup2, fclose, fcloseall, fopen, freopen,
open.
Пример:
#include <stdio.h>
#include <fcntl.h>
FILE *stream;
int fh;
fh=open("data", O_RDONLY);
/* следующий оператор позволяет связать поток с открытым
файлом */
stream = fdopen(fh, "r");.
