文件系統(tǒng)(20161222)

1.定義鏈表

struct student
{
    int ID;
    char name[32];
    struct student* next;//存儲(chǔ)下一個(gè)節(jié)點(diǎn)的地址
};
//頭節(jié)點(diǎn)
//malloc給指針分配內(nèi)存空間,將malloc得到的空間地址賦值給head
struct student *head=(struct student *)malloc(sizeof(struct student));
head->next=NULL;
//插入節(jié)點(diǎn)
struct student *temp=(struct student *)malloc(sizeof(struct student));
temp->ID=12;
strcpy(temp->name,"zhang");
temp->next=NULL;



malloc()/free()
成對(duì)出現(xiàn)
雙釋放易出現(xiàn)段錯(cuò)誤
STU* p=(STU*)malloc(LEN);//一個(gè)malloc對(duì)應(yīng)一個(gè)free匿醒,
STU *pa=p;
free(p);
free(*pa);
p=NULL;
pa=NULL;

棧:
局部變量啥繁,程序運(yùn)行期間的變量分配大部分是棧空間分配青抛;
函數(shù)結(jié)束后,系統(tǒng)自動(dòng)回收資源酬核,空間比較忻哿怼;
堆:
堆空間比較大嫡意,可以由程序員自由支配举瑰,只能手動(dòng)申請(qǐng)和釋放,
malloc申請(qǐng)的空間在堆上蔬螟。
malloc()和free()成對(duì)出現(xiàn)此迅,(即申請(qǐng)的堆空間要及時(shí)釋放)
防止出現(xiàn)堆空間不足現(xiàn)象

3、段錯(cuò)誤:
指針:
常量指針/NULL/野指針
數(shù)組:
數(shù)組越界訪問旧巾,訪問到非法區(qū)域或者修改了其他變量
其他:
內(nèi)存不足
雙釋放
內(nèi)存泄露
遞歸層次太深

4.棧和隊(duì)列
棧:先進(jìn)后出

壓棧:push()
出棧:pop()

隊(duì)列:先進(jìn)先出

5.宏
#define LEN sizeof(STU)
#undef LEN //取消宏定義
(1)條件預(yù)編譯
#if 表大式
//執(zhí)行語句
#else
//執(zhí)行語句
#ednif

6耸序、文件
-:普通文件
d:目錄文件
l:鏈接文件
p:管道文件
b:塊設(shè)備文件
c:字符文件
f:堆棧文件
(1)文件系統(tǒng)

文件信息:索引節(jié)點(diǎn)(index)    (*)
文件操作:文件描述符(fd)       (*)
                fd最大值
早期Unix系統(tǒng):    1024
Linux系統(tǒng)   :   65535 

(2)文件的定義:
一組相關(guān)數(shù)據(jù)的有序集合
(3)文件的打開和關(guān)閉
打開:fopen(文件名,屬性);
關(guān)閉:fclose(文件指針);
注:
文件使用完畢后鲁猩,如果不關(guān)閉坎怪,會(huì)造成數(shù)據(jù)丟失。

文件指針:
文件指針結(jié)構(gòu)體:FILE ---->#include<stdio.h>中
好漢了文件的基本信息
定義文件指針:
FILE *指針變量名;
文件名可以是已存在的廓握,也可以是不存在的搅窿;視屬性而定
屬性:

        r(讀)  w(寫)  a(追加)
        +:可讀寫
        t:文本文件
        b:二進(jìn)制文件
    rt,wt隙券,at,rb,wb男应,ab,rt+,wt+,at+,rb+,wb+,at+,
    rt+/wt+:可讀寫
    rt/rb:只讀
    wt/wb:只寫娱仔,帶w屬性的沐飘,可以寫文件,若文件已存在拟枚,則清除文件薪铜,重新建立文件,若不存在恩溅,則以給定文件名創(chuàng)建文件
r:帶r屬性的隔箍,文件必須存在!=畔纭蜒滩!

7滨达、文件的操作

    fgetc()/fputc():字符讀寫函數(shù)
    fgets()/fputs():字符串讀寫函數(shù),按行讀取
    fscanf()/fprintf:格式化讀寫函數(shù)********讀寫格式要嚴(yán)格一致
    fread()/fwrite():塊讀寫函數(shù)*******
注:
    重點(diǎn)掌握fscanf()/fprintf()或者fread()/fwrite()至少掌握一種
    在C89標(biāo)準(zhǔn)中,fread()/fwrite()有bug

文件結(jié)束標(biāo)識(shí):EOF(end of file)

5.fgetc()/fputc():字符讀寫函數(shù)

    fgetc()俯艰;//從文件中讀取一個(gè)字符
    fputc(字符捡遍,文件指針);//添加一個(gè)字符到指定文件

6.fgets()/fputs()

    fgets(字符數(shù)組/字符串常量/指針,size竹握,fp)
        從fp獲得size-1個(gè)長度画株,在末尾添加‘\0’
        碰到EOF或者換行結(jié)束
    fputs(arr,fp)//arr可以是字符數(shù)組或者字符串常量
        將字符串寫入到文件fp中

    stdin:  標(biāo)準(zhǔn)輸入---->鍵盤
    stdout: 標(biāo)準(zhǔn)輸出----->終端
    stderr: 錯(cuò)誤輸出------>終端

7.fscanf()/fprintf();

    fscanf(fp,"格式",參數(shù)列表)啦辐;//按一定格式寫文件
            <----------------
    fprintf(fp,"格式"谓传,參數(shù)列表);//按一定格式讀文件
            ---------------->

8.fread()/fwrite()

    fread(adress,size,count,fp);//讀
                <-------
    fwrite(adress,size,count,fp);//寫
                ------->
    adress:地址
    size:大小---->sizeof()//或具體的數(shù)值
    count:讀寫的塊數(shù),一般情況下默認(rèn)1芹关;
    fp:文件指針

總結(jié):文件系統(tǒng)的內(nèi)容不難续挟,需要掌握鏈表的寫入和讀出

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市侥衬,隨后出現(xiàn)的幾起案子诗祸,更是在濱河造成了極大的恐慌,老刑警劉巖轴总,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件直颅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡怀樟,警方通過查閱死者的電腦和手機(jī)际乘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漂佩,“玉大人脖含,你說我怎么就攤上這事⊥恫酰” “怎么了养葵?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瘩缆。 經(jīng)常有香客問我关拒,道長,這世上最難降的妖魔是什么庸娱? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任着绊,我火速辦了婚禮,結(jié)果婚禮上熟尉,老公的妹妹穿的比我還像新娘归露。我一直安慰自己,他們只是感情好斤儿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布剧包。 她就那樣靜靜地躺著恐锦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疆液。 梳的紋絲不亂的頭發(fā)上一铅,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音堕油,去河邊找鬼潘飘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛掉缺,可吹牛的內(nèi)容都是我干的福也。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼攀圈,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了峦甩?” 一聲冷哼從身側(cè)響起赘来,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凯傲,沒想到半個(gè)月后犬辰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冰单,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年幌缝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诫欠。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涵卵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出荒叼,到底是詐尸還是另有隱情轿偎,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布被廓,位于F島的核電站坏晦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嫁乘。R本人自食惡果不足惜昆婿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜓斧。 院中可真熱鬧仓蛆,春花似錦、人聲如沸挎春。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至狼荞,卻和暖如春辽装,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背相味。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工拾积, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丰涉。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓拓巧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親一死。 傳聞我的和親對(duì)象是個(gè)殘疾皇子砚尽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容