fcntl.h 標頭檔案,file control的縮寫。
open函式,openat函式:
int open(constchar *path, int
oflag);
int openat(int fd, const
char *path, int oflag);
將準備開啟的檔案或是裝置的名字作為引數path傳給函式,oflags用來指定檔案訪問模式。
兩個系統呼叫成功返回乙個新的檔案描述符,失敗返回-1。兩個函式返回的檔案描述符一定是最小的未用描述符數值。
creat函式:
int creat(constchar *path, mode_t mode);
若成功,返回為只寫開啟的檔案描述符;若出錯,返回-1
close函式:
int close(int fd);
若成功返回0,若出錯返回-1;
lseek函式:
off_t lseek(int fd, off_t offset, int whence);
若成功返回新的檔案偏移量,若出錯,返回為-1;
每個開啟的檔案都有乙個與其相關聯的「當前檔案偏移量」,通常是乙個非負整數。
用以度量從檔案開始處計算的位元組數。通常讀寫操作都從當前檔案的偏移量處開始,並使偏移量增加所讀寫的位元組數。
對引數offset的解釋與引數whence有關:
若whence是seek_set,則將該檔案的偏移量設定為距檔案開始處offset個位元組;
若whence是seek_cur,則將該檔案的偏移量設定為其當前值加offset,offset可為正或負;
若whence是seek_end,則將該檔案的偏移量設定為檔案長度加offset,offset可正可負;
可用以下方式獲取開啟檔案的偏移量:
off_t curpos;
curpos = lseek(fd, 0, seek_cur);
read函式:
ssize_t read(int fd, void *buf, size_t nbytes);
呼叫read函式從開啟檔案中讀資料;
返回值:讀到的位元組數,若已到檔案尾,返回 0,若出錯,返回-1;
write函式:
ssize_t write(int fd, constvoid *buf, size_t nbytes);
返回值:若成功,返回已寫的位元組數;若出錯,返回-1;
其返回值通常與引數nbytes的值相同,否則表示出錯。write出錯的乙個常見原因是:磁碟已寫滿,或者超過了乙個給定的程序的檔案長度限制。
linux系統下檔案i/o程式設計:
Linux系統程式設計(七)檔案許可權系統呼叫
包含標頭檔案 include 函式原型 int access const char pathname,int mode 引數 返回值 access 示例 include include intmain printf 檔案存在 return0 包含標頭檔案 include 函式原型 int chmod...
Linux系統程式設計 檔案IO 一
最近在在實驗樓上學linux,做點筆記。上面的課程對於學習linux還不錯,有興趣可以看看。檔案io linux提供給了使用者程式一些介面,用來呼叫執行相關的功能。大多數linux檔案i o只需要用到5個函式 open,read,write,lseek和close 檔案描述符 檔案描述符是乙個非負整...
linux系統程式設計之檔案I O
一 檔案描述符 linux系統中,所有開啟的檔案都對應乙個數字,這個數字由系統來分配,稱為檔案描述符。pcb程序控制塊裡有檔案描述符表,以陣列形式存放於核心區。乙個程序預設開啟3個檔案描述符 stdin fileno 0 stdout fileno 1 stderr fileno 2 新開啟檔案返回...