creat

creat是一個函式,可以用來創建一個檔案並以只寫的方式打開。

UNIX C

creat(建立檔案)

相關函式 read,write,fcntl,close,link,stat,umask,unlink,fopen

表頭檔案

#include<sys/types.h>

#include<sys/stat.h>

#include<fcntl.h>

C語言:#include<io.h>

定義函式

int creat(const char * pathname, mode_t mode);

函式功能:

創建一個檔案並以只寫的方式打開。如果原來該檔案存在,會將這個檔案的長度截短為0。

函式說明

若函式執行成功則返回打開檔案的描述符,出錯返回-1並設定errno。(關於errno詳見《UNIX環境高級編程》第一章第七節)

參數pathname指向欲建立的檔案路徑字元串。creat()相當於使用下列的調用方式調用open()

open(const char * pathname ,(O_CREAT|O_WRONLY|O_TRUNC));

由於creat函式創建檔案後是以只寫的方式打開,因此局限性比較大,所以一般都用open函式來代替creat函式創建一個檔案,這樣創建後就能同時以讀寫的方式打開檔案了。

錯誤代碼

關於參數mode請參考《UNIX環境高級編程》第四章。

歷史原因

提供creat函式是由於早期的UNIX系統版本中,open的第二個參數只能是0、1、2,沒有辦法打開一個尚未存在的檔案,因此需要另一個系統調用creat以創建新檔案。

返回值

creat()會返回新的檔案描述詞,若有錯誤發生則會返回-1,並把錯誤代碼設給errno。

EEXIST 參數pathname所指的檔案已存在。

EACCESS 參數pathname 所指定的檔案不符合所要求測試的許可權

EROFS 欲打開寫入許可權的檔案存在於唯讀檔案系統內

EFAULT 參數pathname 指針超出可存取的記憶體空間

EINVAL 參數mode 不正確。

ENAMETOOLONG 參數pathname太長。

ENOTDIR 參數pathname為一目錄

ENOMEM 核心記憶體不足

ELOOP 參數pathname有過多符號連線問題。

EMFILE 已達到進程可同時打開的檔案數上限

ENFILE 已達到系統可同時打開的檔案數上限

附加說明

creat()無法建立特別的裝置檔案,如果需要請使用mknod()。

英語

creat表穿心蓮的意思

create表創造的意思

相關詞條

相關搜尋

熱門詞條

聯絡我們