c 清空檔案內容 C程式設計基礎7 檔案系統

2021-10-13 17:42:25 字數 1985 閱讀 4964

這一部分叫做檔案系統並不太合適,其實c語言程式設計的內容在指標結束後就已經結束了,這一部分的內容被稱為調庫更合適一些,因為這部分只是把c語言中對檔案進行操作的一些函式列了出來,並不涉及深層的研究,我們在計算機上所看到的這些檔案其實就是檔案系統的功勞,實際的資料是以0101的形式存放在儲存器中,當我們需要檢視時,cpu將這部分資料從儲存器調取到記憶體當中,然後通過檔案系統進行解析,才形成了我們所看到的檔案,所以也就決定了這一部分篇幅較少,那麼,什麼叫做檔案系統呢?

檔案系統,顧名思義,是乙個關於檔案的作業系統,那麼什麼是檔案,無論是嵌入式作業系統還是計算機的作業系統,無論是linux,android還是windows,檔案的本質實際就是一些**按照一定的排列方式存放在儲存器上的資料,這種排列方式就是檔案系統的格式,目前常用的格式有fat16,fat32和ntfs這幾種,以前的u盤大多數都是fat格式,最初fat16支援的分割槽大小只有2gb,fat32可以支援32gb的磁碟,但是不支援小於512mb的分割槽,目前流行的ntfs最大可以支援到2tb。

檔案系統的功能包括管理和排程檔案的儲存空間,提供檔案的邏輯結構、物理結構和儲存方法;實現檔案從標識到實際位址的對映,實現檔案的控制操作和訪問操作,實現檔案資訊的共享並提供可靠的檔案保密和保護措施,提供檔案的安全措施。

使用者在使用c語言對這些檔案進行管理時,可以不需要考慮底層的硬體結構,只需要呼叫檔案系統提供給使用者操作的介面就可以實現檔案的重新命名,刪除,建立,讀寫等操作。下面列出了一些常用的函式介面。

1、檔案的讀寫

(1)檔案寫入:intfprintf( file *stream, const char *format [, argument ]...);

*stream:檔案指標

(2)檔案讀取:char *fgets(char *s, int n, file * stream);當讀到n-1個字元或換行符時,fgets函式將停止操作;

*s:讀取到的字串指標

n:需要讀取的資料長度

*stream:檔案指標

2、檔案的建立與刪除

(1)檔案的建立(開啟):file*fopen(char *filename, char *mode);

*filename:檔名稱(包括完整的檔案路徑)

*mode:開啟方式,檔案的開啟方式有以下幾種,如下表所示。

開啟方式**作用r

開啟乙個文字檔案,檔案必須存在,只允許讀

r+開啟乙個文字檔案,檔案必須存在,允許讀寫

rb開啟乙個二進位制檔案,檔案必須存在,只允許讀

rb+開啟乙個二進位制檔案,檔案必須存在,允許讀寫

w新建乙個文字檔案,已存在的檔案將內容清空,只允許寫

w+新建乙個文字檔案,已存在的檔案將內容清空,允許讀寫

wb新建乙個二進位制檔案,已存在的檔案內容清空,只允許寫

wb+新建乙個二進位制檔案,已存在的檔案內容清空,允許讀寫

a開啟或新建乙個文字檔案,只允許在檔案末尾追寫

a+開啟或新建乙個文字檔案,可讀,只允許在檔案末尾追寫

ab開啟或新建乙個二進位制檔案,只允許在檔案末尾追寫

ab+開啟或新建乙個二進位制檔案,可讀,只允許在檔案末尾寫

檔案開啟成功後會返回乙個檔案指標,這個指標用於後續的檔案操作。

(2)檔案的關閉:int fclose( file *fp );

*fp:檔案指標

(3)檔案的刪除:intremove(const char *filename);

*filename:檔名稱(包括完整的檔案路徑)

如果成功刪除檔案,則該函式返回0,其他返回非零值。

3、檔案的重新命名:intrename(char * oldname, char * newname);

*oldname:舊檔名

*newname:新檔名

修改檔名成功則返回0,否則返回-1。

4、例題:建立乙個名為「123.txt」的檔案,將1至100以內的奇數寫入檔案。

C基礎(十)檔案

書目 c程式設計 第三版 c語言把檔案看作乙個字元 位元組 的序列。根據資料的組織形式,可分為ascii檔案 文字檔案 和二進位制檔案。ascii檔案的每乙個位元組放乙個ascii碼,代表乙個字元。二進位制檔案是把記憶體中的資料按其在記憶體中的儲存形式原樣輸出到磁碟上存放。因此,乙個c檔案是乙個位元...

c基礎 6 檔案操作

1.讀檔案 2.寫檔案 三.fputs,fgets 行讀取和寫入 四.fprintf,fscanf格式化讀寫檔案內容 二.fwrite,fread二進位制的讀寫 stat 函式 fseek,ftell,rewind remove rename fflush 檔案流 重新整理快取 int main2 ...

C基礎12 檔案操作

strstr 定義說的有點羞澀難懂。舉個例子就知道了。比如 char str2 cdef char str1 abcdefgh 則通過函式,將返回 strstr str1,str2 cdefgh 如果str1不包含有str2。char str2 cxef char str1 abcdefgh 則通過...