共用方式為


_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為 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

如果指定的檔案,藉由filename不存在,會以指定的使用權限設定來建立新的檔案,然後開啟進行寫入。 如果檔案已經存在,而且它的權限設定可讓撰寫時, _creat會將其截斷為長度 0,終結舊內容中,檔案,並開啟它進行寫入。 [使用權限] 設定中, pmode,會套用至新建立的檔案。 第一次關閉後,新的檔案就會收到指定使用權限設定。 整數運算式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> 或者 <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