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");.