_creat, _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

未能找到中指定的文件。

如果 filename 为空,这些函数调用的参数无效处理程序,如 参数验证所述。 如果执行允许继续,对 EINVAL 的这些功能集 errno 并且返回 -1。

有关这些属性和其他的更多信息返回代码示例,请参见 _doserrno、 errno、 _sys_errlist 和 _sys_nerr

备注

_creat 功能创建新文件或打开并截断一个现有项目。 _wcreat 是 _creat的宽字符版本;为 _wcreat 的 filename 参数是宽字符字符串。 _wcreat 和 _creat 否则具有相同的行为。

一般文本例程映射

Tchar.h 实例

未定义的 _UNICODE 和 _MBCS

定义的 _MBCS

定义的 _UNICODE

_tcreat

_creat

_creat

_wcreat

如果 filename 指定的文件不存在,新文件中的特定权限设置创建以及如何将打开。 如果该文件已经存在,并且其权限设置允许编写, _creat 截断文件为长度为 0,销毁以前内容,并打开它编写的。 权限集, pmode,仅适用于新创建的文件。 ,在首次后,关闭新文件接收指定的权限集。 整数表达式 pmode 在 SYS \Stat .h. 包含一个或两个清单常数 _S_IWRITE 和 _S_IREAD,定义。 当给定时对两个常数,它们按位与运算符 ( 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 或 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 );
   }
}
  

请参见

参考

底层I/O

_chmod, _wchmod

_chsize

_close

_dup, _dup2

_open, _wopen

_sopen, _wsopen

_umask