_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

ВВОДА-ВЫВОДА низкого уровня

_close

_create, _wcreat

fopen, _wfopen

_fsopen, _wfsopen

_open, _wopen