這一部分叫做文件系統(tǒng)并不太合適,其實(shí)C語(yǔ)言編程的內(nèi)容在指針結(jié)束后就已經(jīng)結(jié)束了,這一部分的內(nèi)容被稱(chēng)為調(diào)庫(kù)更合適一些,因?yàn)檫@部分只是把C語(yǔ)言中對(duì)文件進(jìn)行操作的一些函數(shù)列了出來(lái),并不涉及深層的研究,我們?cè)谟?jì)算機(jī)上所看到的這些文件其實(shí)就是文件系統(tǒng)的功勞,實(shí)際的數(shù)據(jù)是以0101的形式存放在存儲(chǔ)器中,當(dāng)我們需要查看時(shí),CPU將這部分?jǐn)?shù)據(jù)從存儲(chǔ)器調(diào)取到內(nèi)存當(dāng)中,然后通過(guò)文件系統(tǒng)進(jìn)行解析,才形成了我們所看到的文件,所以也就決定了這一部分篇幅較少,那么,什么叫做文件系統(tǒng)呢?
文件系統(tǒng),顧名思義,是一個(gè)關(guān)于文件的操作系統(tǒng),那么什么是文件,無(wú)論是嵌入式操作系統(tǒng)還是計(jì)算機(jī)的操作系統(tǒng),無(wú)論是Linux,Android還是Windows,文件的本質(zhì)實(shí)際就是一些代碼按照一定的排列方式存放在存儲(chǔ)器上的數(shù)據(jù),這種排列方式就是文件系統(tǒng)的格式,目前常用的格式有FAT16,FAT32和NTFS這幾種,以前的U盤(pán)大多數(shù)都是FAT格式,最初FAT16支持的分區(qū)大小只有2GB,FAT32可以支持32GB的磁盤(pán),但是不支持小于512MB的分區(qū),目前流行的NTFS最大可以支持到2TB。
文件系統(tǒng)的功能包括管理和調(diào)度文件的存儲(chǔ)空間,提供文件的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和存儲(chǔ)方法;實(shí)現(xiàn)文件從標(biāo)識(shí)到實(shí)際地址的映射,實(shí)現(xiàn)文件的控制操作和存取操作,實(shí)現(xiàn)文件信息的共享并提供可靠的文件保密和保護(hù)措施,提供文件的安全措施。
用戶在使用C語(yǔ)言對(duì)這些文件進(jìn)行管理時(shí),可以不需要考慮底層的硬件結(jié)構(gòu),只需要調(diào)用文件系統(tǒng)提供給用戶操作的接口就可以實(shí)現(xiàn)文件的重命名,刪除,創(chuàng)建,讀寫(xiě)等操作。下面列出了一些常用的函數(shù)接口。
1、文件的讀寫(xiě)
(1)文件寫(xiě)入:intfprintf( FILE *stream, const char *format [, argument ]...);
*stream:文件指針
(2)文件讀?。篶har *fgets(char *s, int n, FILE * stream);當(dāng)讀到n-1個(gè)字符或換行符時(shí),fgets函數(shù)將停止操作;
*s:讀取到的字符串指針
n:需要讀取的數(shù)據(jù)長(zhǎng)度
*stream:文件指針
2、文件的創(chuàng)建與刪除
(1)文件的創(chuàng)建(打開(kāi)):FILE*fopen(char *filename, char *mode);
*filename:文件名稱(chēng)(包括完整的文件路徑)
*mode:打開(kāi)方式,文件的打開(kāi)方式有以下幾種,如下表所示。
| 打開(kāi)方式代碼 | 作用 |
|---|---|
| r | 打開(kāi)一個(gè)文本文件,文件必須存在,只允許讀 |
| r+ | 打開(kāi)一個(gè)文本文件,文件必須存在,允許讀寫(xiě) |
| rb | 打開(kāi)一個(gè)二進(jìn)制文件,文件必須存在,只允許讀 |
| rb+ | 打開(kāi)一個(gè)二進(jìn)制文件,文件必須存在,允許讀寫(xiě) |
| w | 新建一個(gè)文本文件,已存在的文件將內(nèi)容清空,只允許寫(xiě) |
| w+ | 新建一個(gè)文本文件,已存在的文件將內(nèi)容清空,允許讀寫(xiě) |
| wb | 新建一個(gè)二進(jìn)制文件,已存在的文件內(nèi)容清空,只允許寫(xiě) |
| wb+ | 新建一個(gè)二進(jìn)制文件,已存在的文件內(nèi)容清空,允許讀寫(xiě) |
| a | 打開(kāi)或新建一個(gè)文本文件,只允許在文件末尾追寫(xiě) |
| a+ | 打開(kāi)或新建一個(gè)文本文件,可讀,只允許在文件末尾追寫(xiě) |
| ab | 打開(kāi)或新建一個(gè)二進(jìn)制文件,只允許在文件末尾追寫(xiě) |
| ab+ | 打開(kāi)或新建一個(gè)二進(jìn)制文件,可讀,只允許在文件末尾寫(xiě) |
文件打開(kāi)成功后會(huì)返回一個(gè)文件指針,這個(gè)指針用于后續(xù)的文件操作。
(2)文件的關(guān)閉:int fclose( FILE *fp );
*fp:文件指針
(3)文件的刪除:intremove(const char *filename);
*filename:文件名稱(chēng)(包括完整的文件路徑)
如果成功刪除文件,則該函數(shù)返回0,其他返回非零值。
3、文件的重命名:intrename(char * oldname, char * newname);
*oldname:舊文件名
*newname:新文件名
修改文件名成功則返回0,否則返回-1。
4、例題:創(chuàng)建一個(gè)名為“123.txt”的文件,將1至100以內(nèi)的奇數(shù)寫(xiě)入文件。

-
嵌入式
+關(guān)注
關(guān)注
5198文章
20442瀏覽量
333986 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7401瀏覽量
129282 -
文件系統(tǒng)
+關(guān)注
關(guān)注
0文章
302瀏覽量
20975
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式Linux設(shè)計(jì):文件系統(tǒng)和引導(dǎo)加載程序
C#程序設(shè)計(jì)與案例教程
基于μC/OS-II的文件系統(tǒng)設(shè)計(jì)
NTFS文件系統(tǒng),NTFS文件系統(tǒng)是什么意思
XfS文件系統(tǒng),XfS文件系統(tǒng)是什么意思
STM32的文件系統(tǒng)程序+SD卡虛擬U盤(pán)設(shè)計(jì)
文件系統(tǒng)是什么?淺談EXT文件系統(tǒng)歷史
使用RT-Thread文件系統(tǒng)
C++ Builder 6程序設(shè)計(jì)教程電子書(shū)
FATFS文件系統(tǒng)詳解
C程序設(shè)計(jì)基礎(chǔ)-文件系統(tǒng)
評(píng)論