这一部分叫做文件系统并不太合适,其实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以内的奇数写入文件。
全部0条评论
快来发表一下你的评论吧 !