_sopen, _wsopen
Открывает файл для совместного использования.Более безопасные версии этих функций доступны; см. _sopen_s, _wsopen_s.
int _sopen(
const char *filename,
int oflag,
int shflag [,
int pmode ]
);
int _wsopen(
const wchar_t *filename,
int oflag,
int shflag [,
int pmode ]
);
Параметры
filename
Имя файла.oflag
Тип допустимых операций.shflag
Разрешенный тип совместного использования.pmode
Настройка разрешений.
Возвращаемое значение
Каждая из этих функций возвращает идентификатор файла, открытого файла.
If filename OR oflag a NULL указатель или oflag OR shflag находится вне допустимого диапазона значений, недопустимый параметр вызывается обработчик, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то эти функции возвращают -1 и задают errno одно из следующих значений.
EACCES
Заданный путь каталога или файл только для чтения, но операция была открытый-для-записи предпринимается попытка выполнения.EEXIST
_O_CREAT и _O_EXCL определенные флаги, но filename уже существует.EINVAL
Недопустимо oflag OR shflag аргумент.EMFILE
Больше нет доступных идентификаторов файла.ENOENT
Не обнаружены файла или путь.
Дополнительные сведения об этих и других кодах возврата см. _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
_sopen функция открывает файл, заданный by filename и подготавливает файл для общих чтения или записи, в соответствии с которым следуют oflag и shflag._wsopen версия расширенных символов _sopen; filename аргумент _wsopen строка символов._wsopen и _sopen поступайте совпадают, в противном случае.
Сопоставления подпрограммы Родов-Текста
Подпрограмма Tchar.h |
Не указанные _UNICODE и _MBCS |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_tsopen |
_sopen |
_sopen |
_wsopen |
Выражение integer oflag формы путем объединения одну или несколько из следующих констант определяется в файле манифеста Fcntl.h.Если два или более констант формируют аргумент oflagони объединяются с оператором (побитовое или | ).
_O_APPEND
Перемещает указатель файла в конец файла перед каждой операции записи._O_BINARY
Открывает файл в бинарном режиме (untranslated).(См. fopen описание binary режима)._O_CREAT
Создает и открывает новый файл для записи.Не действует, если указанный файл by filename существует.pmode если необходим аргумент _O_CREAT указывает._O_CREAT| _O_SHORT_LIVED
Создайте файл как временно и, если возможно, не flush на диск.pmode если необходим аргумент _O_CREAT указывает._O_CREAT| _O_TEMPORARY
Создайте файл как временно; файл удаляется, когда последний идентификатор файла закрыт.pmode если необходим аргумент _O_CREAT указывает._O_CREAT| _O_EXCL
Возвращает значение ошибки, если указанный файл by filename существует.Применяется только при использовании с _O_CREAT._O_NOINHERIT
Предотвращает создание дескриптора файла роли public._O_RANDOM
Определяет основной произвольно-доступное с диска._O_RDONLY
Открывает файл только для чтения; не может быть указан с _O_RDWR OR _O_WRONLY._O_RDWR
Файл открытых как для чтения, так и для записи. не может быть указан с _O_RDONLY OR _O_WRONLY._O_SEQUENTIAL
Определяет основной последовательный доступ с диска._O_TEXT
Открывает файл в режиме () переведенного текста.(Дополнительные сведения см. в разделе ВВОДА-ВЫВОДА текста и файла режим binary и fopen.)_O_TRUNC
Открывает файл и усекает его в нулевую длину; файл должен иметь разрешение на запись.Нельзя указать этот пометить с _O_RDONLY._O_TRUNC используется с _O_CREAT открывает существующий файл или создания нового файла.Примечание _O_TRUNC пометить удаляет содержимое указанного файла.
_O_WRONLY
Открытие файла для записи только; не может быть указан с _O_RDONLY OR _O_RDWR._O_U16TEXT
Открытие файла в режиме Юникода UTF-16._O_U8TEXT
Открытие файла в режиме UTF-8 в юникоде._O_WTEXT
Откройте файл находится в режиме в юникоде.
Чтобы задать режим доступа к файлу, необходимо определить, то _O_RDONLY" _O_RDWRили _O_WRONLY.Значение по умолчанию для режима доступа.
If _sopen вызывает с _O_WRONLY|_O_APPEND (режим и добавления) _O_WTEXT" _O_U16TEXTили _O_U8TEXTон сначала пытается открыть файл для чтения и записи, чтение спецификацию, а затем снова откройте его только для записи.Сбой при открытии файла для чтения и записи, она открытии файла для записи только и использует значения по умолчанию для настройки режима в юникоде.
Аргумент shflag константное выражение, состоящее из манифестов одно из следующих констант определяется в Share.h.
_SH_DENYRW
Запрещает доступ на чтение и запись в файл._SH_DENYWR
Запрещает доступ для записи к файлу._SH_DENYRD
Запрещает доступ на чтение к файлу._SH_DENYNO
Разрешает доступ на чтение и запись.
pmode аргумент обязателен только при указании _O_CREAT.Если файл не существует, pmode задает параметры разрешения файла, задаваемые при новый файл закрыт the first time.В противном случае - значение pmode игнорирует.pmode целочисленное выражение, которое содержит одну или обе из манифестов констант _S_IWRITE и _S_IREADопределяется в схеме SYS \ Stat.h.Если обе они предоставляются константы, объединяются с побитового или оператором.Смысл pmode следующим образом.
_S_IWRITE
Позволенная запись._S_IREAD
Чтение позволило._S_IREAD | _S_IWRITE
Разрешенные чтение и запись.
Если разрешение записи не задано, то файл только для чтения.Под операционной системой windows, все файлы четки; невозможно предоставить разрешение, доступное только на запись.Таким образом, режим _S_IWRITE и _S_IREAD | _S_IWRITE эквивалентны.
_sopen применяет к файл-разрешения текущую маску pmode прежде чем устанавливать разрешения (см. _umask).
Требования
Процедура |
Обязательный заголовок |
Необязательный заголовок |
---|---|---|
_sopen |
<io.h> |
<fcntl.h>" <sys или types.h>" <sys или stat.h>" <share.h> |
_wsopen |
<io.h> OR <wchar.h> |
<fcntl.h>" <sys или types.h>" <sys или stat.h>" <share.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
См. пример _locking.
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.