<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 文件I/O編程之: 標(biāo)準(zhǔn)I/O編程

          文件I/O編程之: 標(biāo)準(zhǔn)I/O編程

          作者: 時(shí)間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/257135.htm

          2.關(guān)閉文件

          (1)說明。

          關(guān)閉標(biāo)準(zhǔn)流文件的為fclose(),該將緩沖區(qū)內(nèi)的數(shù)據(jù)全部寫入到文件中,并釋放系統(tǒng)所提供的文件資源。

          (2)函數(shù)格式說明。

          fclose()函數(shù)格式如表6.18所示。

          表6.18 fclose()函數(shù)語(yǔ)法要點(diǎn)

          所需頭文件

          #includestdio.h>

          函數(shù)原型

          intfclose(FILE*stream)

          函數(shù)傳入值

          stream:已打開的文件指針

          函數(shù)返回值

          成功:0
          失?。篍OF

          3.讀文件

          (1)()函數(shù)說明。

          在文件流被打開之后,可對(duì)文件流進(jìn)行讀寫等操作,其中讀操作的函數(shù)為()。

          (2)()函數(shù)格式。

          fread()函數(shù)格式如表6.19所示。

          表6.19 fread()函數(shù)語(yǔ)法要點(diǎn)

          所需頭文件

          #includestdio.h>

          函數(shù)原型

          size_tfread(void*ptr,size_tsize,size_tnmemb,FILE*stream)

          函數(shù)傳入值

          ptr:存放讀入記錄的緩沖區(qū)

          size:讀取的記錄大小

          nmemb:讀取的記錄數(shù)

          stream:要讀取的文件流

          函數(shù)返回值

          成功:返回實(shí)際讀取到的nmemb數(shù)目
          失?。篍OF

          4.寫文件

          (1)fwrite()函數(shù)說明。

          fwrite()函數(shù)用于對(duì)指定的文件流進(jìn)行寫操作。

          (2)fwrite()函數(shù)格式。

          fwrite()函數(shù)格式如表6.20所示。

          表6.20 fwrite()函數(shù)語(yǔ)法要點(diǎn)

          所需頭文件

          #includestdio.h>

          函數(shù)原型

          size_tfwrite(constvoid*ptr,size_tsize,size_tnmemb,FILE*stream)

          續(xù)表

          函數(shù)傳入值

          ptr:存放寫入記錄的緩沖區(qū)

          size:寫入的記錄大小

          nmemb:寫入的記錄數(shù)

          stream:要寫入的文件流

          函數(shù)返回值

          成功:返回實(shí)際寫入的記錄數(shù)目
          失?。篍OF

          5.使用實(shí)例

          下面實(shí)例的功能跟底層I/O操作的實(shí)例基本相同,運(yùn)行結(jié)果也相同(請(qǐng)參考6.3.1節(jié)的實(shí)例),只是用標(biāo)準(zhǔn)I/O庫(kù)的文件操作來替代原先的底層文件系統(tǒng)調(diào)用而已。

          讀者可以觀察哪種方法的效率更高,其原因又是什么。

          #includestdlib.h>

          #includestdio.h>

          #defineBUFFER_SIZE1024/*每次讀寫緩存大小*/

          #defineSRC_FILE_NAMEsrc_file/*源文件名*/

          #defineDEST_FILE_NAMEdest_file/*目標(biāo)文件名文件名*/

          #defineOFFSET10240/*復(fù)制的數(shù)據(jù)大小*/

          intmain()

          {

          FILE*src_file,*dest_file;

          unsignedcharbuff[BUFFER_SIZE];

          intreal_read_len;

          /*以只讀方式打開源文件*/

          src_file=fopen(SRC_FILE_NAME,r);

          /*以寫方式打開目標(biāo)文件,若此文件不存在則創(chuàng)建*/

          dest_file=fopen(DEST_FILE_NAME,w);

          if(!src_file||!dest_file)

          {

          printf(Openfileerrorn);

          exit(1);

          }

          /*將源文件的讀寫指針移到最后10KB的起始位置*/

          fseek(src_file,-OFFSET,SEEK_END);

          /*讀取源文件的最后10KB數(shù)據(jù)并寫到目標(biāo)文件中,每次讀寫1KB*/

          while((real_read_len=fread(buff,1,sizeof(buff),src_file))>0)

          {

          fwrite(buff,1,real_read_len,dest_file);

          }

          fclose(dest_file);

          fclose(src_file);

          return0;

          }

          讀者可以嘗試用其他文件打開函數(shù)進(jìn)行練習(xí)。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();