檔案輸入輸出函式:creat , open , close , read , write , lseek等
對於核心而言,所有開啟的檔案都由檔案描述符標識 。 檔案描述符是乙個非負整數。
讀寫檔案時 ,先呼叫open或creat函式開啟檔案,成功執行時都將返回乙個檔案描述符。在讀寫時將其作為引數傳遞給read或write.
檔案描述符取值範圍 0~255,即每個程式最多開啟256個檔案。
open 函式 (man open)
#include
#include
#include
int open ( const char *pathname , int flags); //pathname 為要開啟或建立的檔案 , flag為開啟方式
int open ( const char *pathname , int flags , mode_t mode); //mode 說明新檔案的訪問許可權
flags 引數
~o_rdonly 唯讀
~o_wronly 只寫
~o_rdwr 可讀可寫
上面三種開啟方式互斥,不可同時使用
~o_creat 若檔案不存在,採用到第三個引數來說明新檔案的許可權
~o_excl 若o_creat被設定,此指令去檢查檔案是否存在,不存在則建新,存在則開啟檔案出錯。
~o_trunc 若檔案存在並且以可寫方式開啟,此標誌將檔案清空重寫。
~o_sync 同步方式開啟檔案,任何對檔案的修改都回阻塞知道磁碟資料同步以後返回。
~o_nofllow 若引數pathname 所指檔案為一符號連線,則會令你開啟檔案失敗。
~o_directory 若pathname 所指檔案並非為一目錄,則會令開啟檔案失敗。
~o_nonblock 或o_ndelay 以非阻塞的方式開啟檔案,對於open 及隨後對該檔案的操作,都會立即返回。
引數mode 與chmod 函式相同。
strerror()函式:通過標準錯誤的標號,獲得標準錯誤的字串,方便使用者茶摘錯誤。
errno 是記錄系統的最後一次的錯誤**,**是乙個整型,在標頭檔案中包含。
通過srerror與errno 搭配使用檢視錯誤。
read 函式
#include
ssize_t read(int fd , void *buf , size_t count) ;
從檔案fd 中讀取count 個位元組的資料到 buf 所指記憶體中。
返回0,表示已達到檔案尾或者是無可讀取的資料,此外檔案讀寫指標會隨讀取到的位元組移動。最好將返回數與引數count作比較。
出錯時返回-1,錯誤**存入errno.
write函式原型
#include
ssize_t write (int fd , const void *buf , size_t conut);
將buf所指向的快取區的資料讀取count位元組存入fd 所指的檔案。其餘與read函式相同。
檔案的開啟 關閉 讀寫
二 對檔案的操作 2.檔案的讀寫 2.2 檔案的隨機讀寫 1.檔案是什麼?檔案通常是在磁碟或固態硬碟上的一段已命名的儲存區,是指存放在外部儲存介質 可以是磁碟 光碟 磁帶等 上的資料集合。c把檔案看作是一系列連續的位元組,每個位元組都能被單獨讀取。2.檔案的操作流程 開啟 建立 檔案 讀寫檔案 關閉...
開啟關閉檔案和讀寫檔案
一 開啟和關閉檔案 int open char filename,int flags,mode t mode 開啟檔案 open函式將filename轉換為乙個檔案描述符 flags引數也可以是乙個或者更多位掩蓋的 mode引數指定了新檔案的訪問許可權位 int close int fd 關閉檔案 ...
檔案的建立,開啟與關閉
int chmod const char path,mode t mode mode 代表訪問許可權 int fchmod int fildes mode t mode 字元常量值 對應的八進位制數值 含義s irusr 00400 所有者可讀取 s iwusr 00200 所有者可寫入 s ixu...