二、檔案的程式設計操作
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 資料塊 具體存放資料的位置區域。超級塊的結構以及對於的操作簡介 超級塊物...