creat
C語言中建立文件的函數
creat是一個函數,可以用來創建一個文件並以只寫的方式打開。
creat(建立文件)
表頭文件
#include
#include
C語言:#include
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()會返回新的文件描述詞,若有錯誤發生則會返回-1,並把錯誤代碼設給errno。
EEXIST 參數pathname所指的文件已存在。
EACCESS 參數pathname 所指定的文件不符合所要求測試的許可權
EROFS 欲打開寫入許可權的文件存在於只讀文件系統內
EFAULT 參數pathname 指針超出可存取的內存空間
EINVAL 參數mode 不正確。
ENAMETOOLONG 參數pathname太長。
ENOTDIR 參數pathname為一目錄
ENOMEM 核心內存不足
ELOOP 參數pathname有過多符號連接問題。
EMFILE 已達到進程可同時打開的文件數上限
ENFILE 已達到系統可同時打開的文件數上限
附加說明
creat()無法建立特別的裝置文件,如果需要請使用mknod()。