檔案的建立開啟關閉讀寫

2021-07-03 22:57:12 字數 1490 閱讀 8578

檔案輸入輸出函式: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...