_open, _wopen
Открывает файл.Эти функции нерекомендуемый, поскольку более безопасные версии недоступны; см. _sopen_s, _wsopen_s.
int _open(
const char *filename,
int oflag [,
int pmode]
);
int _wopen(
const wchar_t *filename,
int oflag [,
int pmode]
);
Параметры
filename
Имя файла.oflag
Тип допустимых операций.pmode
Режим разрешения.
Возвращаемое значение
Каждая из этих функций возвращает идентификатор файла, открытого файла.Возвращаемое значение -1 означает ошибку, в которой регистр errno набор одно из следующих значений.
EACCES
Попытка открыть файл, доступный только для чтения для записи, режим файла не разрешает совместное использование, операции или заданный путь каталога.EEXIST
_O_CREAT и _O_EXCL указанные флаги, но filename уже существует.EINVAL
Недопустимо oflag OR pmode аргумент.EMFILE
Больше нет доступных идентификаторов файла (слишком много открытых файлов).ENOENT
Не обнаружены файла или путь.
Дополнительные сведения об этих и других кодах возврата см. _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
_open функция открывает файл, заданный by filename и подготавливает файл для чтения или записи, в соответствии с которым следуют oflag._wopen версия расширенных символов _open; filename аргумент _wopen строка символов._wopen и _open поступайте совпадают, в противном случае.
Сопоставления подпрограммы Родов-Текста
Подпрограмма Tchar.h |
Не указанные _UNICODE и _MBCS |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_topen |
_open |
_open |
_wopen |
oflag выражение целое число, образованное из одного или нескольких из следующих констант манифестов или константные сочетания указанных в Fcntl.h.
_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 _O_WTEXT используется, чтобы открыть файл для чтения _open считывает начало файла и проверки отметки порядка байтов (bom).Если спецификация, то файл обрабатывается как UTF-8 или UTF-16LE в зависимости от спецификации.Если метка отсутствует файл обрабатывается как ANSI.При открытии файла для записи using _O_WTEXT, UTF-16 используется.If _O_UTF8 использует файл всегда открывается в виде UTF-8 и если _O_UTF16 использует файл всегда открывается как UTF-16 независимо от любой предыдущей метки параметра или порядка байтов.
If _open вызывает с _O_WRONLY|_O_APPEND (режим и добавления) _O_WTEXT" _O_U16TEXTили _O_U8TEXTон сначала пытается открыть файл для чтения и записи, чтение спецификацию, а затем снова откройте его только для записи.Сбой при открытии файла для чтения и записи, она открытии файла для записи только и использует значения по умолчанию для настройки режима в юникоде.
Если два или более очевидные константы используются для формирования oflag аргумент, константы объединяется с оператором (побитовое или |).Описание режимов binary и текста см. в разделе ВВОДА-ВЫВОДА текста и файла режим binary.
pmode требуется только в тех случаях, когда аргумент _O_CREAT указывает.Если файл уже существует, pmode игнорирует.В противном случае - pmode задает параметры разрешения файла, задаваемые при новый файл закрыт the first time._open применяет к файл-разрешения текущую маску pmode прежде чем устанавливать разрешения (дополнительные сведения см. в разделе _umask).pmode выражение целого числа, содержащий одно или оба следующих очевидных констант определяется в схеме SYS \ Stat.h.
_S_IREAD
Разрешенный только чтение._S_IWRITE
Позволенная запись (эффективно позволяет считывать и записывать)._S_IREAD | _S_IWRITE
Разрешенные чтение и запись.
Если обе константы, они предоставляются соединении с оператором (побитовое или |).В Windows NT, все файлы четки, поэтому доступное только на запись разрешения недоступен; таким образом режимы _S_IWRITE и _S_IREAD | _S_IWRITE эквивалентны.
Если значение задано, за исключением приведенного выше pmode (даже если он определит допустимым pmode в другой операционной системе) или любого значения, кроме разрешенный oflag значения указаны, функция создает утверждение в режиме отладки и вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если выполнение может продолжить, функция возвращает -1 и присваивает errno В EINVAL.
Требования
Процедура |
Обязательный заголовок |
Необязательный заголовок |
---|---|---|
_open |
<io.h> |
<fcntl.h>" <sys или types.h>" <sys или stat.h> |
_wopen |
<io.h> OR <wchar.h> |
<fcntl.h>" <sys или types.h>" <sys или stat.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Библиотеки
Все версии Библиотеки времени выполнения C.
Пример
// crt_open.c
// compile with: /W3
/* This program uses _open to open a file
* named CRT_OPEN.C for input and a file named CRT_OPEN.OUT
* for output. The files are then closed.
*/
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
int main( void )
{
int fh1, fh2;
fh1 = _open( "CRT_OPEN.C", _O_RDONLY ); // C4996
// Note: _open is deprecated; consider using _sopen_s instead
if( fh1 == -1 )
perror( "Open failed on input file" );
else
{
printf( "Open succeeded on input file\n" );
_close( fh1 );
}
fh2 = _open( "CRT_OPEN.OUT", _O_WRONLY | _O_CREAT, _S_IREAD |
_S_IWRITE ); // C4996
if( fh2 == -1 )
perror( "Open failed on output file" );
else
{
printf( "Open succeeded on output file\n" );
_close( fh2 );
}
}
Output
Open succeeded on input file
Open succeeded on output file
Эквивалент в .NET Framework
System:: Ввода-вывода:: FileStream:: FileStream