linux的open函數(shù) |
發(fā)布時(shí)間: 2012/5/28 15:19:18 |
open 函數(shù)用于打開(kāi)和創(chuàng)建文件。以下是 open 函數(shù)的簡(jiǎn)單描述 #include <fcntl.h> //千萬(wàn)記得加這個(gè)頭文件哦 int open(const char *pathname, int oflag, ... /* mode_t mode */); 返回值:成功則返回文件描述符,否則返回 -1 其中,第三個(gè)參數(shù)(...)僅當(dāng)創(chuàng)建新文件時(shí)才使用,用于指定文件的訪問(wèn)權(quán)限位(access permission bits)。 pathname 是待打開(kāi)/創(chuàng)建文件的路徑名(如 /home/gouwa/); oflag 用于指定文件的打開(kāi)/創(chuàng)建模式,這個(gè)參數(shù)可由以下常量(定義于 fcntl.h)通過(guò)邏輯或構(gòu)成: 以下三個(gè)常量同樣是選用的,它們用于同步輸入輸出: open 返回的文件描述符一定是最小的未被使用的描述符。 如果 NAME_MAX(文件名最大長(zhǎng)度,不包括'\0')是14,而我們想在當(dāng)前目錄下創(chuàng)建文件名長(zhǎng)度超過(guò) 14 字節(jié)的文件,早期的 System V 系統(tǒng)(如 SVR2)會(huì)截?cái)喑霾糠,只保留?14 個(gè)字節(jié);而由 BSD 衍生的(BSD-derived)系統(tǒng)會(huì)返回錯(cuò)誤信息,并且把 errno 置為 ENAMETOOLONG。 POSIX.1 引入常量 _POSIX_NO_TRUNC 用于決定是否截?cái)嚅L(zhǎng)文件名/長(zhǎng)路徑名。如果POSIX_NO_TRUNC 設(shè)定為禁止截?cái)?/strong>,并且路徑名長(zhǎng)度超過(guò) PATH_MAX(包括 '\0'),或者組成路徑名的任意文件名長(zhǎng)度超過(guò)NAME_MAX,則返回錯(cuò)誤信息,并且把 errno 置為 ENAMETOOLONG。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |