0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C程序设计基础-文件系统

汽车电子技术 来源:滑小稽笔记 作者:滑小稽 2023-03-02 10:13 次阅读

这一部分叫做文件系统并不太合适,其实C语言编程的内容在指针结束后就已经结束了,这一部分的内容被称为调库更合适一些,因为这部分只是把C语言中对文件进行操作的一些函数列了出来,并不涉及深层的研究,我们在计算机上所看到的这些文件其实就是文件系统的功劳,实际的数据是以0101的形式存放在存储器中,当我们需要查看时,CPU将这部分数据从存储器调取到内存当中,然后通过文件系统进行解析,才形成了我们所看到的文件,所以也就决定了这一部分篇幅较少,那么,什么叫做文件系统呢?

文件系统,顾名思义,是一个关于文件的操作系统,那么什么是文件,无论是嵌入式操作系统还是计算机的操作系统,无论是LinuxAndroid还是Windows,文件的本质实际就是一些代码按照一定的排列方式存放在存储器上的数据,这种排列方式就是文件系统的格式,目前常用的格式有FAT16FAT32NTFS这几种,以前的U盘大多数都是FAT格式,最初FAT16支持的分区大小只有2GBFAT32可以支持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以内的奇数写入文件。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5124

    文章

    19433

    浏览量

    312901
  • 操作系统
    +关注

    关注

    37

    文章

    7022

    浏览量

    124674
  • 文件系统
    +关注

    关注

    0

    文章

    293

    浏览量

    20216
收藏 人收藏

    相关推荐

    嵌入式Linux设计:文件系统和引导加载程序

    Linux 内核在系统引导期间所做的最后一件事是挂载根文件系统。Linux 内核没有规定文件系统结构,但用户空间应用程序希望在目录结构中找到具有特定名称的
    发表于 07-26 10:53 1636次阅读
    嵌入式Linux设计:<b class='flag-5'>文件系统</b>和引导加载<b class='flag-5'>程序</b>

    嵌入式系统C程序设计

    嵌入式系统C程序设计
    发表于 04-07 22:42 86次下载
    嵌入式<b class='flag-5'>系统</b>的<b class='flag-5'>C</b><b class='flag-5'>程序设计</b>

    Linux文件系统课程

    本章学习目标理解什么是文件系统了解文件系统工作原理理解Fedora Core Linux文件系统的结构掌握Fedora Core Linux文件系统的类型、权限和修改方法掌握如何安装、
    发表于 04-10 17:07 0次下载

    基于μC/OS-II的文件系统设计

    本文提出了基于μC/OS-II 的一个文件系统的设计与实现方法。通过分析文件系统中的 层次结构和功能模块,给出了文件系统的详细设计方案,包括
    发表于 06-17 10:48 10次下载

    嵌入式系统c程序设计

    嵌入式系统c程序设计
    发表于 02-11 09:21 65次下载
    嵌入式<b class='flag-5'>系统</b>的<b class='flag-5'>c</b><b class='flag-5'>程序设计</b>

    NTFS文件系统,NTFS文件系统是什么意思

    NTFS文件系统,NTFS文件系统是什么意思 NTFS是Windows NT以及之后的Windows 2000、Windows XP、Windows Server 2003、Windows Server 2008
    发表于 03-29 10:38 6107次阅读

    XfS文件系统,XfS文件系统是什么意思

    XfS文件系统,XfS文件系统是什么意思 XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Lin
    发表于 03-29 10:39 4324次阅读

    STM32的文件系统程序+SD卡虚拟U盘设计

    STM32的文件系统程序,以及SD卡虚拟U盘设计
    发表于 12-10 16:34 54次下载

    嵌入式系统C程序设计

    嵌入式系统C程序设计
    发表于 10-30 10:20 13次下载
    嵌入式<b class='flag-5'>系统</b>与<b class='flag-5'>C</b><b class='flag-5'>程序设计</b>

    文件系统是什么?浅谈EXT文件系统历史

    在先前关于Linux文件系统的文章中,我很想去深入地讨论更多EXT文件系统的特性的信息。所以,首先让我们来回答这个问题:什么是文件系统?一个文件系统应该遵循以下特点。
    发表于 06-28 09:03 5882次阅读
    <b class='flag-5'>文件系统</b>是什么?浅谈EXT<b class='flag-5'>文件系统</b>历史

    使用RT-Thread文件系统

    了解了文件系统的一些常用命令之后,下面带领大家通过运行文件系统的一些示例程序,来熟悉文件系统的基本操作。示例程序通过使用一些 DFS 的 A
    的头像 发表于 11-07 10:40 9214次阅读

    C++ Builder 6程序设计教程电子书

    本书系统地介绍了在 Windows环境下利用C++ Builder进行应用程序开发的方法,主要内容包括C++ Builder常用组件的使用、MDI多文档应用
    发表于 03-11 14:30 32次下载
    <b class='flag-5'>C</b>++ Builder 6<b class='flag-5'>程序设计</b>教程电子书

    FATFS文件系统详解

    采用的独特的文件系统结构CDFS:CDFS是大部分的光盘的文件系统exFATFATFS文件系统FATFS是一个完全免费开源的FAT 文件系统模块,专门为小型的嵌入式
    发表于 11-29 09:51 29次下载
    FATFS<b class='flag-5'>文件系统</b>详解

    C语言程序设计--火车订票系统

    C语言程序设计--火车订票系统
    的头像 发表于 08-01 00:40 1219次阅读
    <b class='flag-5'>C</b>语言<b class='flag-5'>程序设计</b>--火车订票<b class='flag-5'>系统</b>

    NFS网络文件系统深度解析

    NFS:Network File System 网络文件系统,基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端
    的头像 发表于 03-01 14:15 431次阅读