RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C程序設(shè)計(jì)基礎(chǔ)-文件系統(tǒng)

汽車電子技術(shù) ? 來源:滑小稽筆記 ? 作者:滑小稽 ? 2023-03-02 10:13 ? 次閱讀

這一部分叫做文件系統(tǒng)并不太合適,其實(shí)C語言編程的內(nèi)容在指針結(jié)束后就已經(jīng)結(jié)束了,這一部分的內(nèi)容被稱為調(diào)庫更合適一些,因?yàn)檫@部分只是把C語言中對(duì)文件進(jìn)行操作的一些函數(shù)列了出來,并不涉及深層的研究,我們?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)中,然后通過文件系統(tǒng)進(jìn)行解析,才形成了我們所看到的文件,所以也就決定了這一部分篇幅較少,那么,什么叫做文件系統(tǒng)呢?

文件系統(tǒng),顧名思義,是一個(gè)關(guān)于文件的操作系統(tǒng),那么什么是文件,無論是嵌入式操作系統(tǒng)還是計(jì)算機(jī)的操作系統(tǒng),無論是Linux,Android還是Windows,文件的本質(zhì)實(shí)際就是一些代碼按照一定的排列方式存放在存儲(chǔ)器上的數(shù)據(jù),這種排列方式就是文件系統(tǒng)的格式,目前常用的格式有FAT16,FAT32NTFS這幾種,以前的U盤大多數(shù)都是FAT格式,最初FAT16支持的分區(qū)大小只有2GBFAT32可以支持32GB的磁盤,但是不支持小于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語言對(duì)這些文件進(jìn)行管理時(shí),可以不需要考慮底層的硬件結(jié)構(gòu),只需要調(diào)用文件系統(tǒng)提供給用戶操作的接口就可以實(shí)現(xiàn)文件的重命名,刪除,創(chuàng)建,讀寫等操作。下面列出了一些常用的函數(shù)接口。

1、文件的讀寫

(1)文件寫入: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)建(打開):FILE*fopen(char *filename, char *mode);

*filename:文件名稱(包括完整的文件路徑)

*mode:打開方式,文件的打開方式有以下幾種,如下表所示。

打開方式代碼 作用
r 打開一個(gè)文本文件,文件必須存在,只允許讀
r+ 打開一個(gè)文本文件,文件必須存在,允許讀寫
rb 打開一個(gè)二進(jìn)制文件,文件必須存在,只允許讀
rb+ 打開一個(gè)二進(jìn)制文件,文件必須存在,允許讀寫
w 新建一個(gè)文本文件,已存在的文件將內(nèi)容清空,只允許寫
w+ 新建一個(gè)文本文件,已存在的文件將內(nèi)容清空,允許讀寫
wb 新建一個(gè)二進(jìn)制文件,已存在的文件內(nèi)容清空,只允許寫
wb+ 新建一個(gè)二進(jìn)制文件,已存在的文件內(nèi)容清空,允許讀寫
a 打開或新建一個(gè)文本文件,只允許在文件末尾追寫
a+ 打開或新建一個(gè)文本文件,可讀,只允許在文件末尾追寫
ab 打開或新建一個(gè)二進(jìn)制文件,只允許在文件末尾追寫
ab+ 打開或新建一個(gè)二進(jìn)制文件,可讀,只允許在文件末尾寫

文件打開成功后會(huì)返回一個(gè)文件指針,這個(gè)指針用于后續(xù)的文件操作。

(2)文件的關(guān)閉:int fclose( FILE *fp );

*fp:文件指針

(3)文件的刪除:intremove(const char *filename);

*filename:文件名稱(包括完整的文件路徑)

如果成功刪除文件,則該函數(shù)返回0,其他返回非零值。

3、文件的重命名:intrename(char * oldname, char * newname);

*oldname:舊文件名

*newname:新文件名

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

4、例題:創(chuàng)建一個(gè)名為“123.txt”的文件,將1至100以內(nèi)的奇數(shù)寫入文件。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304794
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6801

    瀏覽量

    123283
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    284

    瀏覽量

    19904
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式Linux設(shè)計(jì):文件系統(tǒng)和引導(dǎo)加載程序

    Linux 內(nèi)核在系統(tǒng)引導(dǎo)期間所做的最后一件事是掛載根文件系統(tǒng)。Linux 內(nèi)核沒有規(guī)定文件系統(tǒng)結(jié)構(gòu),但用戶空間應(yīng)用程序希望在目錄結(jié)構(gòu)中找到具有特定名稱的
    發(fā)表于 07-26 10:53 ?1469次閱讀
    嵌入式Linux設(shè)計(jì):<b class='flag-5'>文件系統(tǒng)</b>和引導(dǎo)加載<b class='flag-5'>程序</b>

    嵌入式系統(tǒng)C程序設(shè)計(jì)

    嵌入式系統(tǒng)C程序設(shè)計(jì)
    發(fā)表于 04-07 22:42 ?86次下載
    嵌入式<b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>C</b><b class='flag-5'>程序設(shè)計(jì)</b>

    C#程序設(shè)計(jì)與案例教程

    C#程序設(shè)計(jì)與案例教程全書共分九章,按C#知識(shí)的系統(tǒng)性,由淺入深安排內(nèi)容,全面介紹了C# 語言基礎(chǔ),面向?qū)ο?/div>
    發(fā)表于 10-22 11:05 ?158次下載
    <b class='flag-5'>C</b>#<b class='flag-5'>程序設(shè)計(jì)</b>與案例教程

    Linux文件系統(tǒng)課程

    本章學(xué)習(xí)目標(biāo)理解什么是文件系統(tǒng)了解文件系統(tǒng)工作原理理解Fedora Core Linux文件系統(tǒng)的結(jié)構(gòu)掌握Fedora Core Linux文件系統(tǒng)的類型、權(quán)限和修改方法掌握如何安裝、
    發(fā)表于 04-10 17:07 ?0次下載

    基于μC/OS-II的文件系統(tǒng)設(shè)計(jì)

    本文提出了基于μC/OS-II 的一個(gè)文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法。通過分析文件系統(tǒng)中的 層次結(jié)構(gòu)和功能模塊,給出了文件系統(tǒng)的詳細(xì)設(shè)計(jì)方案,包括
    發(fā)表于 06-17 10:48 ?10次下載

    嵌入式系統(tǒng)c程序設(shè)計(jì)

    嵌入式系統(tǒng)c程序設(shè)計(jì)
    發(fā)表于 02-11 09:21 ?65次下載
    嵌入式<b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>c</b><b class='flag-5'>程序設(shè)計(jì)</b>

    XfS文件系統(tǒng),XfS文件系統(tǒng)是什么意思

    XfS文件系統(tǒng),XfS文件系統(tǒng)是什么意思 XfS文件系統(tǒng)是SGI開發(fā)的高級(jí)日志文件系統(tǒng),XFS極具伸縮性,非常健壯。所幸的是SGI將其移植到了Lin
    發(fā)表于 03-29 10:39 ?4258次閱讀

    STM32的文件系統(tǒng)程序+SD卡虛擬U盤設(shè)計(jì)

    STM32的文件系統(tǒng)程序,以及SD卡虛擬U盤設(shè)計(jì)
    發(fā)表于 12-10 16:34 ?54次下載

    嵌入式系統(tǒng)C程序設(shè)計(jì)

    嵌入式系統(tǒng)C程序設(shè)計(jì)
    發(fā)表于 10-30 10:20 ?13次下載
    嵌入式<b class='flag-5'>系統(tǒng)</b>與<b class='flag-5'>C</b><b class='flag-5'>程序設(shè)計(jì)</b>

    文件系統(tǒng)是什么?淺談EXT文件系統(tǒng)歷史

    在先前關(guān)于Linux文件系統(tǒng)的文章中,我很想去深入地討論更多EXT文件系統(tǒng)的特性的信息。所以,首先讓我們來回答這個(gè)問題:什么是文件系統(tǒng)?一個(gè)文件系統(tǒng)應(yīng)該遵循以下特點(diǎn)。
    發(fā)表于 06-28 09:03 ?5692次閱讀
    <b class='flag-5'>文件系統(tǒng)</b>是什么?淺談EXT<b class='flag-5'>文件系統(tǒng)</b>歷史

    使用RT-Thread文件系統(tǒng)

    了解了文件系統(tǒng)的一些常用命令之后,下面帶領(lǐng)大家通過運(yùn)行文件系統(tǒng)的一些示例程序,來熟悉文件系統(tǒng)的基本操作。示例程序通過使用一些 DFS 的 A
    的頭像 發(fā)表于 11-07 10:40 ?8831次閱讀

    可以了解的Linux 文件系統(tǒng)結(jié)構(gòu)

    Linux中的文件是什么?它的文件系統(tǒng)又是什么?那些配置文件又在哪里?我下載好的程序保存在哪里了?在 Linux 中文件系統(tǒng)是標(biāo)準(zhǔn)結(jié)構(gòu)的嗎?
    發(fā)表于 04-27 14:06 ?716次閱讀
    可以了解的Linux <b class='flag-5'>文件系統(tǒng)</b>結(jié)構(gòu)

    C++ Builder 6程序設(shè)計(jì)教程電子書

    本書系統(tǒng)地介紹了在 Windows環(huán)境下利用C++ Builder進(jìn)行應(yīng)用程序開發(fā)的方法,主要內(nèi)容包括C++ Builder常用組件的使用、MDI多文檔應(yīng)用
    發(fā)表于 03-11 14:30 ?32次下載
    <b class='flag-5'>C</b>++ Builder 6<b class='flag-5'>程序設(shè)計(jì)</b>教程電子書

    FATFS文件系統(tǒng)詳解

    采用的獨(dú)特的文件系統(tǒng)結(jié)構(gòu)CDFS:CDFS是大部分的光盤的文件系統(tǒng)exFATFATFS文件系統(tǒng)FATFS是一個(gè)完全免費(fèi)開源的FAT 文件系統(tǒng)模塊,專門為小型的嵌入式
    發(fā)表于 11-29 09:51 ?29次下載
    FATFS<b class='flag-5'>文件系統(tǒng)</b>詳解

    C語言程序設(shè)計(jì)--火車訂票系統(tǒng)

    C語言程序設(shè)計(jì)--火車訂票系統(tǒng)
    的頭像 發(fā)表于 08-01 00:40 ?982次閱讀
    <b class='flag-5'>C</b>語言<b class='flag-5'>程序設(shè)計(jì)</b>--火車訂票<b class='flag-5'>系統(tǒng)</b>
    RM新时代网站-首页