這一部分叫做文件系統并不太合適,其實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以內的奇數寫入文件。
-
嵌入式
+關注
關注
5120文章
19409瀏覽量
312368 -
操作系統
+關注
關注
37文章
6995瀏覽量
124587 -
文件系統
+關注
關注
0文章
293瀏覽量
20194
發布評論請先 登錄
相關推薦
嵌入式Linux設計:文件系統和引導加載程序

Linux文件系統課程
基于μC/OS-II的文件系統設計
XfS文件系統,XfS文件系統是什么意思
文件系統是什么?淺談EXT文件系統歷史

使用RT-Thread文件系統
C++ Builder 6程序設計教程電子書

FATFS文件系統詳解

評論