Поделиться через


_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 );
   }
}
  

См. также

Ссылки

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

_chmod, _wchmod

_chsize

_close

_dup, _dup2

_open, _wopen

_sopen, _wsopen

_umask