Linux檔案操作及程式設計

2021-10-24 03:20:38 字數 2905 閱讀 3198

二、檔案的程式設計操作

2、檔案的寫入函式write

3、檔案的讀取函式read

4、檔案游標的移動函式lseek

5、檔案的關閉函式close

ls檢視檔案或者是目錄的相關資訊(非隱藏檔案的檔名,以檔名進行排序及檔名代表的顏色顯示如此)。 -l長資料序列出,包含檔案的屬性與許可權等等資料,-a全部的檔案連同隱藏檔案一起列出來,-d 僅列出檔案本身,而不列出目錄內的檔案資料。

touch建立乙個空的檔案,用法:touch 檔名

拷貝指令cp,使用格式:cp **檔案 目標檔案,刪除指令rm,使用格式:rm 檔名,mv指令有兩個功能:移動檔案或目錄,或更名,第乙個用法:mv 待操作檔案 目標檔案,第二個用法:mv 檔案原名 檔案新名。

3.檔案內容查閱cat:cat是將乙個檔案的內容連續列印到螢幕上

int

open

(const

char

*pathname,

int flags)

;int

open

(const

char

*pathname,

int flags,mode_t mode)

;pathname:要開啟的檔名(含路徑,預設為當前路徑)

flags:

o_rdonly唯讀開啟

o_wronly只寫開啟

o_rdwr可讀可寫開啟

以上三個常數只能制定乙個,下列常數是可選擇的(不同常數之間用 | 隔開)

o_creat

若檔案不存在則建立它,使用此選項,需要同時說明第三個引數mode,用其說明該新檔案的訪問許可許可權

o_excl

如果同時指定了ocreat,而檔案已經存在,則出錯

每次寫時都加到檔案的尾端

o_trunc

屬性去開啟檔案時,如果這個檔案中本來是有內容的,而且為唯讀或只寫成功開啟,則將其長度截短為0

int

creat

(const

char

*filename,mode_t mode)

;filename:要建立的檔名(包含路徑、預設為當前路徑)

mode:建立模式(可讀可寫可執行)

常見建立模式:

巨集表示            數字                

s_irusr 4 可讀

s_iwusr 2 可寫

s_ixusr 1 可執行

s_irwxu 7 可讀,寫,執行

open和create都有乙個整形返回值,這個返回值稱為檔案描述符,這個檔案描述符非常重要,用於下一步作為寫和讀函式的引數,每乙個程序對應乙個描述符,程序不同描述符不同

ssize_t write

(int fd,

const

*buf,size_t,count)

;fd:檔案描述符來自於open或creat的返回值

buf:需要寫入的字串內容

size_t:每次寫入的位元組大小

返回值

成功:返回寫入的位元組數

失敗:返回-

1並設定errno

ps: 寫常規檔案時,write的返回值通常等於請求寫的位元組

數count, 而向終端裝置或者網路寫時則不一定

ssize_t read

(int fd,

void

*buf,size_t count)

fd: 是檔案描述符, 從command line獲取資料時,為0

buf: 為讀出資料的緩衝區;

count: 為每次讀取的位元組數(是請求讀取的位元組數,讀上來的資料保

存在緩衝區buf中,同時檔案的當前讀寫位置向後移)

返回值

成功:返回讀出的位元組數

失敗:返回-

1,並設定errno,如果在呼叫read

之前到達檔案末尾,則這次read返回0

off_t lseek

(int fildes, off_t offset,

int whence)

;fd:檔案描述符

off_offset:offset 為根據引數whence來移動讀寫位置的位移數

offset為正數時向右移動,為負時向左移動

whence的種類

seek_set 指向檔案的頭

seek_cur 指向檔案當前位置

seek_end 指向檔案的尾

欲將讀寫位置移到檔案開頭時:lseek(int fildes, 0, seek_set);

欲將讀寫位置移到檔案尾時:lseek(int fildes, 0, seek_end);

想要取得目前檔案位置時:lseek(int fildes, 0, seek_cur);

求檔案大小特別方法

int sizefile;

sizefile =

lseek

(fd,0,

seek_end

);

int

close

(int fd)

;

開啟的檔案一定要記得關閉,可以節約記憶體占用

linux 檔案程式設計操作 執行緒操作

專案名稱 蘇嵌實訓 嵌入式 linux c 第 7 天 今日進度 以及任務 1.嵌入式linuxc程式設計 2.檔案程式設計 3.多工程式設計 執行緒 本日任務完成情況 本日開發 現的問題彙總 本日未解決問題 本日開發收穫 了解了嵌入式為什麼要移植作業系統,creat open read write...

linux程式設計 檔案操作 5

高階api 一 fsync 介面說明 vod sync void 立即同步系統中所有核心中快取的檔案資料到磁碟 int fsync int fd 立即同步系統中所有核心中指定的檔案資料到磁碟,包括變更檔案屬性 int fdatasync int fd 立即 同步系統中所有核心中指定的檔案資料到磁碟,...

Linux檔案管理及目錄操作

乙個檔案系統通常包括3個部分 1 超級塊 包括整個檔案系統的基本資訊,如塊的大小,指向空間inode和資料塊的指標等相關資訊。2 inode塊 檔案索引。他是檔案系統的最基本單元。每個子目錄和檔案只有唯一的乙個inode塊。3 資料塊 具體存放資料的位置區域。超級塊的結構以及對於的操作簡介 超級塊物...