_create, _wcreat
Создает новый файл._creat и _wcreat нерекомендуемый. используйте _sopen_s, _wsopen_s вместо этого.
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Параметры
filename
Имя нового файла.pmode
Настройка разрешений.
Возвращаемое значение
Эти функции, в случае успеха возвращает идентификатор файла к созданному файлу.В противном случае функции возвращают 1 и задают errno как показано в следующей таблице.
Значение errno |
Описание |
---|---|
EACCES |
filename определяет существующего файла, доступного только для чтения или задает каталог, а не файла. |
EMFILE |
Больше нет идентификаторов файла недоступны. |
ENOENT |
Указанный файл не найден. |
If filename эти функции недопустимы значения NULL, вызывает обработчик параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то эти функции установки errno В EINVAL и равен -1.
Дополнительные сведения об этих и других кодах возврата см. _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
_creat функция создает новый файл или открытые и усекает существующую._wcreat версия расширенных символов _creat; filename аргумент _wcreat строка символов._wcreat и _creat поступайте совпадают, в противном случае.
Сопоставления подпрограммы Родов-Текста
Подпрограмма Tchar.h |
Не указанные _UNICODE и _MBCS |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Если указанный файл by filename не существует, то будет создан новый файл с заданной конфигурацией разрешений и открыт для записи.Если файл уже существует и его настройка разрешений разрешает запись _creat усекает файл на длину 0 разрушающ прежнее содержимое и открытые для записи.Настройка разрешений pmodeприменяется к файлам, созданного только для чтения.Новый файл получает параметр указанного разрешения после того, как он закрыт впервые.Выражение integer pmode содержит одну или обе из манифестов констант _S_IWRITE и _S_IREADопределяется в схеме SYS \ Stat.h.Если обе константы, они предоставляются соединении с побитовый оператор OR (оператор**|**).pmode параметр установлен в одно из следующих значений.
Значение |
Определение |
---|---|
_S_IWRITE |
Позволенная запись. |
_S_IREAD |
Чтение позволило. |
_S_IREAD | _S_IWRITE |
Разрешенные чтение и запись. |
Если разрешение записи не задано, то файл только для чтения.Все файлы всегда четки; невозможно предоставить разрешение, доступное только на запись.Режимы _S_IWRITE и _S_IREAD| _S_IWRITE затем эквивалентны.Файлы, открытые с помощью _creat всегда раскрывайте в режиме совместимости (см. _sopen) _SH_DENYNO.
_creat применяет к файл-разрешения текущую маску pmode прежде чем устанавливать разрешения (см. _umask)._creat предоставляет главным образом для обеспечения совместимости с предыдущими библиотеками.Вызов _open с _O_CREAT и _O_TRUNC в oflag параметр равнозначен _creat и предпочтительны для нового кода.
Требования
Процедура |
Обязательный заголовок |
Необязательный заголовок |
---|---|---|
_creat |
<io.h> |
<sys или types.h>" <sys или stat.h>" <errno.h> |
_wcreat |
<io.h> OR <wchar.h> |
<sys или types.h>" <sys или stat.h>" <errno.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
// crt_creat.c
// compile with: /W3
// This program uses _creat to create
// the file (or truncate the existing file)
// named data and open it for writing.
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int fh;
fh = _creat( "data", _S_IREAD | _S_IWRITE ); // C4996
// Note: _creat is deprecated; use _sopen_s instead
if( fh == -1 )
perror( "Couldn't create data file" );
else
{
printf( "Created data file.\n" );
_close( fh );
}
}