頭文件:#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>
- #include <fcntl.h> // 提供open()函數
- #include <sys/types.h> // 提供mode_t類型
- #include <sys/stat.h> // 提供open()函數的符號
- #include <unistd.h> // 提供close()函數
定義函數:int creat(const char * pathname, mode_tmode);
函數說明:
1、參數 pathname 指向欲建立的文件路徑字符串。
2、Creat()相當於使用下列的調用方式調用open()
open(const char * pathname, (O_CREAT|O_WRONLY|O_TRUNC));
filename:要創建的文件名(包括路徑,默認當前路徑)
mode:創建模式(0表示沒有任何權限
S_IRUSR可讀,1
S_IWUSR可寫,2
S_IXUSR可執行,4
S_IRWXR可讀、寫、執行)7(也可以用數字代替,如0777)
返回值:文件描述符,值爲一個整數,發生錯誤時返回-1
返回值:
creat()會返回新的文件描述詞, 若有錯誤發生則會返回-1, 並把錯誤代碼設給errno.
錯誤提示:
EEXIST參數:pathname 所指的文件已存在.
EACCESS參數:pathname 所指定的文件不符合所要求測試的權限
EROFS:欲打開寫入權限的文件存在於只讀文件系統內
EFAULT參數:pathname 指針超出可存取的內存空間
EINVAL參數:mode 不正確.
ENAMETOOLONG參數:pathname 太長.
ENOTDIR 參數:pathname 爲一目錄
ENOMEM :核心內存不足
ELOOP 參數:pathname 有過多符號連接問題.
EMFILE:已達到進程可同時打開的文件數上限
ENFILE:已達到系統可同時打開的文件數上限