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 | Файл не найден |