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