複製鏈接
請複製以下鏈接發送給好友

creat

鎖定
creat是一個函數,可以用來創建一個文件並以只寫的方式打開。
中文名
建立文件
外文名
creat
相關函數
read,write,fcntl,close等
表頭文件
#include等

creatUNIX 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>

creat定義函數

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歷史原因

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

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英語

creat表穿心蓮的意思
create表創造的意思