linux的open函數 |
發布時間: 2012/5/28 15:19:18 |
open 函數用于打開和創建文件。以下是 open 函數的簡單描述 #include <fcntl.h> //千萬記得加這個頭文件哦 int open(const char *pathname, int oflag, ... /* mode_t mode */); 返回值:成功則返回文件描述符,否則返回 -1 其中,第三個參數(...)僅當創建新文件時才使用,用于指定文件的訪問權限位(access permission bits)。 pathname 是待打開/創建文件的路徑名(如 /home/gouwa/); oflag 用于指定文件的打開/創建模式,這個參數可由以下常量(定義于 fcntl.h)通過邏輯或構成: 以下三個常量同樣是選用的,它們用于同步輸入輸出: open 返回的文件描述符一定是最小的未被使用的描述符。 如果 NAME_MAX(文件名最大長度,不包括'\0')是14,而我們想在當前目錄下創建文件名長度超過 14 字節的文件,早期的 System V 系統(如 SVR2)會截斷超出部分,只保留前 14 個字節;而由 BSD 衍生的(BSD-derived)系統會返回錯誤信息,并且把 errno 置為 ENAMETOOLONG。 POSIX.1 引入常量 _POSIX_NO_TRUNC 用于決定是否截斷長文件名/長路徑名。如果POSIX_NO_TRUNC 設定為禁止截斷,并且路徑名長度超過 PATH_MAX(包括 '\0'),或者組成路徑名的任意文件名長度超過NAME_MAX,則返回錯誤信息,并且把 errno 置為 ENAMETOOLONG。 本文出自:億恩科技【www.laynepeng.cn】 |