Программирование на C и C++

Онлайн справочник программиста на C и C++

_dos_open

unsigned _dos_open(const char *fname, unsigned mode, int *fd)

Прототип: 
Описание: 

Эта функция не определена стандар­том ANSI С.

Функция _dos_open() открывает файл, чье имя задано с помощью указателя fname. Режим от­крытия задается параметром mode. Дескриптор файла возвращается в виде целого числа, на кото­рое указывает параметр fd. Основные значения параметра mode приведены ниже. (Эти макросы определены в файле dos.h.)

ВеличинаЗначение
O_RDONLYТолько для чтения
O_WRONLYТолько для записи
O_RDWRДля чтения и записи

Можно добавить следующие атрибуты к параметру mode, соединяя их с помощью побитового ИЛИ с указанными выше значениями (эти макросы определены в файле share.h).

ВеличинаЗначение
SH_COMPATТолько в режиме совместимости
SH_DENYNOРазрешены чтение и запись
SH_DENYRDЗапрещено чтение
SH_DENYRWЗапрещены чтение и запись
SH_DENYWRЗапрещена запись

Можно также указать, что файл не может быть унаследован процессом-потомком, для чего до­бавляется макрос O_NOINHERlT с использованием побитового ИЛИ. Этот макрос определен в fcntl.h.

Функция _dos_open() возвращает в случае успеха 0 и ненулевое значение в случае ошибки. В последнем случае переменная errno устанавливается равной одному из следующих значений:

ВеличинаЗначение
EACCESSДоступ запрещен
EINVACCНекорректная попытка доступа (например, попытка чтения файла, открытого для операций записи)
EMFILEСлишком много открытых файлов
ENOENTФайл не найден
Пример: