檔案描述符是乙個非負的整數,它是乙個索引值,並指向核心中每個程序開啟檔案的記錄表。當開啟乙個現存盤案或建立乙個新檔案時,核心就向程序返回乙個檔案描述符,當需要讀/寫檔案時,也需要把檔案描述符作為引數傳遞給相應的函式。
通常,乙個程序啟動時,都會開啟3個檔案,標準輸入,標準輸出,標準出錯處理,這3個檔案描述符為stdin_fileno、stdout_fileno、stderr_fileno。
#include
#include
#include
#include
int open(const
char *pathname, int flags);
int open(const
char *pathname, int flags, mode_t mode);
檔案描述符,出錯則返回-1。
字串,表示被開啟的檔名稱,可以包含路徑。
為乙個或多個標誌,表示檔案的開啟方式。
常用標誌如表所示:
#include
o_rdonly //唯讀方式開啟;
o_wronly //只寫方式開啟;
o_rdwr //讀/寫方式開啟;
o_creat //如果檔案不存在,就建立新的檔案;
o_excl //如果使用o_creat時檔案存在,則可返回錯誤訊息;
o_trunc //如果檔案已存在,且以唯讀或只寫成功開啟,則先全部刪除檔案中原有的資料;
注意:在open函式中,flags引數可以用過「|」組合而成,o_rdonly,o_wronly,o_rdwr這三種方式是互斥的,不可同時使用,因此這3個引數只能出現乙個。
被開啟檔案的訪問許可權模式,當開啟已有檔案時,將忽略這個引數。
檔案模式符號常量:
#include
s_irwxu 00700
//所屬使用者讀、寫和執行許可權
s_irusr 00400
//所屬使用者讀許可權
s_iwusr 00200
//所屬使用者寫許可權
s_ixusr 00100
//所屬使用者執行許可權
s_irwxg 00070
//組使用者讀,寫和執行許可權
s_irgrp 00040
//組使用者讀許可權
s_iwgrp 00020
//組使用者寫許可權
s_ixgrp 00010
//組使用者執行許可權
s_irwxo 00007
//其他使用者讀,寫和執行許可權
s_iroth 00004
//其他使用者讀許可權
s_iwoth 00002
//其他使用者寫許可權
s_ixoth 00001
//其他使用者執行許可權
int create(const char *pathname,mode_t mode);
//create函式相當於open的縮寫版本:open(pathname,o_wronly|o_creat|o_trunc,mode);
int
close(int fd);
//傳入引數:fd檔案描述符;
//返回值:若檔案順利關閉則返回0,發生錯誤則返回-1。
size_t read(int fd, void *buf,size_t count)
size_t write(int fd,const void *buf, size_t count)
//fd:檔案描述符
//buf:指定儲存器獨處資料的緩衝區
//count:指定讀出或寫入的位元組數
函式返回值:如果發生錯誤,那麼返回值為-1,同時設定errno變數為錯誤**,如果操作成功,則返回值是實際讀取或寫入的位元組數。這個位元組數可能小於要求的位元組數count,對於讀操作而言,當檔案所剩的位元組數少於count時,就會出現這種情況,而對於寫操作來說,當磁碟已滿或者某些別的問題時,也會出現這種情況。
#include
#include
off_t lseek(int fd, off_t offset, int whence);
seek_set 引數offset即為新的讀寫位置.
seek_cur 以目前的讀寫位置往後增加offset個位移量.
seek_end 將讀寫位置指向檔案尾後再增加offset個位移量.
當whence 值為seek_cur 或seek_end 時, 引數offet 允許負值的出現.
當呼叫成功時則返回目前的讀寫位置, 也就是距離檔案開頭多少個位元組. 若有錯誤則返回-1, errno 會存放錯誤**。
#include
#include
int access(const
char *pathname, int mode);
pathname:需要測試的檔案路徑名。
mode:需要測試的操作模式,可能值是乙個或多個r_ok(可讀?), w_ok(可寫?), x_ok(可執行?) 或f_ok(檔案存在?)組合體。
返回值: 若所有欲查核的許可權都通過了檢查則返回0值,表示成功,只要有一許可權被禁止則返回-1。
6Linux檔案處理指令
touch 建立空檔案 語法 touch japanlovestory.list 在當前目錄建立乙個japanlovestory.list檔案 touch root japanlovestory.list 在root目錄建立乙個japanlovestory.list檔案 字尾名沒什麼關係 touch...
6 Linux檔案與目錄管理 命令
目錄 2.檔案與目錄管理 3.檔案內容查詢 4.檔案與目錄 預設許可權與隱藏許可權 4.3.檔案特殊許可權 suid,sgid,sbit 4.4.觀察檔案型別 file 5.指令與檔案的搜尋 6.許可權與指令的關係 參考 linux 學習筆記.md linux 命令大全 概述 本文基本為 檔案與目錄...
6 linux中文的顯示
在 linux下輸入或顯示中文或通過 securecrt 連線linux 常有中仍亂碼 關鍵是 要設定中文 字符集,通過locale 這個變數。locale 是軟體在執行時的語言環境,它包括語言 language 地域 territory 和字符集 codeset 乙個locale 的書寫格式為 語...