6 Linux檔案程式設計

2021-07-26 11:12:27 字數 2674 閱讀 6786

檔案描述符是乙個非負的整數,它是乙個索引值,並指向核心中每個程序開啟檔案的記錄表。當開啟乙個現存盤案或建立乙個新檔案時,核心就向程序返回乙個檔案描述符,當需要讀/寫檔案時,也需要把檔案描述符作為引數傳遞給相應的函式。

通常,乙個程序啟動時,都會開啟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 的書寫格式為 語...