青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0
今天在寫文件的時(shí)候發(fā)現(xiàn)fwrite的時(shí)候多出了一些亂碼,最后發(fā)現(xiàn)加個(gè)b,以二進(jìn)制的方式打開文件就解決了,google了.... 特記與此

   在學(xué)習(xí)C語言文件操作后,我們都會(huì)知道打開文件的函數(shù)是fopen,也知道它的第二個(gè)參數(shù)是 標(biāo)志字符串。其中,如果字符串中出現(xiàn)'b',則表明是以打開二進(jìn)制(binary)文件,否則是打開文本文件。

  那么什么是文本文件,什么是二進(jìn)制文件呢? 可能大多數(shù)人都沒有仔細(xì)考慮過。

  在Windows和DOS系統(tǒng)中,狹義的文本文件是指擴(kuò)展名為txt的文件。實(shí)際上,那些沒有規(guī)定格式的,由可理解的的ASCII以及其他編碼文字組成的文件都是文本文件,如C源程序文件,HTML超文本,XML。除此之外的其他文件都是二進(jìn)制文件,如Word文件DOC,圖象格式文件JPG。

  但是,所謂使用fopen標(biāo)志打開文本文件與二進(jìn)制文件的說法并不準(zhǔn)確。正確的說法應(yīng)該是--以文本方式和二進(jìn)制方式打開文件。因?yàn)槲覀冇脙煞N方式都可以任意的文件。

  即使這樣,為什么還要區(qū)分兩種方式呢?

  這是因?yàn)檫@兩種方式在讀寫文件時(shí)的操作是不一樣的。

  二進(jìn)制方式很簡單,讀文件時(shí),會(huì)原封不動(dòng)的讀出文件的全部內(nèi)容,寫的時(shí)候,也是把內(nèi)存緩沖區(qū)的內(nèi)容原封不動(dòng)的寫到文件中。

  而文本方式就不一樣了,在寫文件時(shí),會(huì)將換行符號(hào)CRLF(0x0D 0x0A)全部轉(zhuǎn)換成單個(gè)的0x0A,并且當(dāng)遇到結(jié)束符CTRLZ(0x1A)時(shí),就認(rèn)為文件已經(jīng)結(jié)束。相應(yīng)的,寫文件時(shí),會(huì)將所有的0x0A換成0x0D0x0A。

所以,若使用文本方式打開二進(jìn)制文件時(shí),就很容易出現(xiàn)文件讀不完整,或內(nèi)容不對(duì)的錯(cuò)誤。即使是用文本方式打開文本文件,也要謹(jǐn)慎使用,比如復(fù)制文件,就不應(yīng)該使用文本方式。

  要特別注意的是,上面這樣的說法僅適用于DOS和Windows系統(tǒng)。在Unix和其他一些系統(tǒng)中,沒有文本方式和二進(jìn)制方式的區(qū)分,使不使用'b'標(biāo)志都是一樣的。這是由于不同操作系統(tǒng)對(duì)文本文件換行符的定義,和C語言中換行符的定義有所不同而造成的。

  如上文已提到,DOS和Windows系統(tǒng)使用CRLF(0x0D 0x0A)雙字節(jié)作為文本文件換行符,而Unix文本文件的換行符只有一個(gè)字節(jié)LF(0x0A)為。在C語言中,也是以LF即'\n'為換行符。

  由于DOS/Windows定義的換行符和C語言的不一致,C語言的標(biāo)準(zhǔn)輸入輸出函數(shù)適行讀寫文本文件時(shí),就適行了CRLF->LF的轉(zhuǎn)換。而Unix的定義和C語言的是一樣的,就不必轉(zhuǎn)換了。

  那么,為什么會(huì)有定義不一致的情況呢,這純屬歷史原因。當(dāng)初C是在Unix上發(fā)展的,對(duì)換行的定義自然就一樣了。其后C被引入到DOS系統(tǒng),為了使原有的C程序能不加修改的讀寫DOS的文本文件,所以就在文件讀寫上做了修改。隨著DOS/Windows成為主流平臺(tái),這個(gè)當(dāng)初為了兼容而做的修改給眾多的C語言開發(fā)者添了這樣一個(gè)小小的麻煩。
from:
http://blog.chinaunix.net/u2/76292/showart.php?id=2140344
posted on 2010-01-05 20:23 chatler 閱讀(582) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Linux_Coding
<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产日韩欧美一区在线| 亚洲精品一区中文| 亚洲精品一区二区三区不| 国产一区二区三区免费在线观看| 亚洲精华国产欧美| 国户精品久久久久久久久久久不卡| 亚洲乱码国产乱码精品精98午夜| 在线观看欧美日韩国产| 亚洲欧美日本精品| 亚洲一区高清| 欧美日韩精品一本二本三本| 欧美激情二区三区| 精品二区久久| 久久久久国产精品人| 欧美亚洲综合在线| 国产精品黄视频| 一本色道久久综合亚洲精品不卡| 亚洲精品一区二区三区蜜桃久 | 性欧美8khd高清极品| 欧美精品二区三区四区免费看视频| 乱中年女人伦av一区二区| 国产日韩欧美三区| 亚洲欧美日本伦理| 久久国产精品久久久久久| 国产精品久久久久久福利一牛影视| 亚洲日本久久| 一区二区三区四区五区视频| 欧美日本不卡| 亚洲另类一区二区| 亚洲天天影视| 国产精品日韩在线播放| 亚洲一区二区三区三| 欧美一区二区三区久久精品| 国产精品夜夜夜| 亚洲欧美在线观看| 久久久久在线观看| 亚洲丰满少妇videoshd| 久久野战av| 亚洲人在线视频| 亚洲午夜精品视频| 国产精品自在线| 久久裸体艺术| 91久久国产精品91久久性色| 中文欧美字幕免费| 国产精品久久精品日日| 性色av一区二区三区在线观看| 久久久免费av| 亚洲人成在线免费观看| 欧美视频精品在线| 欧美中文字幕在线| 亚洲丁香婷深爱综合| 亚洲校园激情| 国内精品久久久久影院色| 免费不卡在线视频| 一区二区三区高清在线观看| 国产精品国产| 欧美一区亚洲二区| 亚洲国产精品福利| 亚洲欧美区自拍先锋| 激情一区二区三区| 欧美乱大交xxxxx| 欧美一区二区三区日韩| 亚洲国产高清一区| 欧美在线1区| 亚洲精品影院| 国产亚洲欧美日韩一区二区| 欧美激情综合| 欧美一区二区| 日韩系列欧美系列| 蜜臀a∨国产成人精品| 亚洲一区二区少妇| 亚洲二区在线观看| 国产日韩欧美精品| 欧美激情一区三区| 久久久久国色av免费看影院| 99精品国产一区二区青青牛奶| 久久男人资源视频| 亚洲性av在线| 亚洲精品视频二区| 影音先锋亚洲视频| 国产精品视频网| 欧美剧在线免费观看网站| 欧美在线亚洲一区| 亚洲一区二区三区777| 亚洲黄色免费电影| 蜜桃精品久久久久久久免费影院| 亚洲欧美日本另类| 日韩视频在线免费| 亚洲国产成人av| 红桃av永久久久| 国产欧美日韩91| 欧美天堂亚洲电影院在线播放| 蜜臀av国产精品久久久久| 欧美在线一区二区三区| 亚洲男同1069视频| 亚洲最新视频在线| 日韩一级裸体免费视频| 亚洲国产专区| 亚洲国产成人porn| 欧美国产免费| 欧美福利专区| 欧美福利在线| 亚洲成人在线视频播放 | 久久免费黄色| 久久久精品999| 久久精品国产清高在天天线| 欧美v日韩v国产v| 久久久水蜜桃| 久久先锋资源| 麻豆精品在线播放| 另类亚洲自拍| 免费看精品久久片| 欧美 日韩 国产 一区| 久久在线视频在线| 老司机午夜精品视频在线观看| 久久久亚洲午夜电影| 久久久99精品免费观看不卡| 久久激情中文| 麻豆av一区二区三区| 蜜臀久久99精品久久久久久9| 六月婷婷久久| 亚洲第一色在线| 亚洲伦理在线免费看| 日韩西西人体444www| 亚洲午夜精品网| 欧美一区二区免费视频| 久久久www| 欧美77777| 国产精品videosex极品| 国产精品久久二区二区| 国产日韩欧美精品一区| 在线播放一区| 日韩视频一区二区三区在线播放| 亚洲午夜高清视频| 欧美伊人影院| 亚洲成人在线网| 一区二区三区国产精品| 久久av二区| 欧美精品久久久久a| 国产精品久久久久国产精品日日| 国产私拍一区| 亚洲日本免费| 欧美一区二区三区四区在线观看| 久久嫩草精品久久久久| 亚洲国产精品福利| 亚洲一区精品在线| 老鸭窝毛片一区二区三区| 欧美日韩午夜剧场| 精品91在线| 亚洲性感激情| 欧美sm重口味系列视频在线观看| 日韩午夜高潮| 久久久久国产免费免费| 欧美区一区二区三区| 国产一区日韩欧美| 在线午夜精品| 欧美成人一区二区三区| 亚洲一区二区三区国产| 欧美成在线观看| 国产一区二区精品| 亚洲视频免费观看| 你懂的国产精品永久在线| 亚洲一区在线观看免费观看电影高清| 美女被久久久| 国产一区二区中文| 亚洲综合国产| 亚洲精品韩国| 免费视频一区| 伊人久久婷婷色综合98网| 欧美一级理论片| 一本大道久久a久久精品综合| 久久午夜精品一区二区| 国产欧美日韩亚洲精品| 国产精品99久久久久久人| 欧美华人在线视频| 久久精品亚洲精品| 国产视频一区在线| 亚洲欧美日韩精品久久久| 亚洲卡通欧美制服中文| 欧美国产日韩一区| 亚洲国内精品在线| 麻豆国产精品777777在线| 午夜亚洲福利| 国产农村妇女毛片精品久久麻豆| 亚洲在线视频网站| 日韩一本二本av| 欧美精品久久一区二区| 亚洲国产欧美一区二区三区久久| 久久综合亚州| 欧美在线免费观看视频| 国产日韩欧美三级| 久久丁香综合五月国产三级网站| 亚洲一区二区精品视频| 国产精品美女一区二区| 午夜性色一区二区三区免费视频| 在线视频日韩| 国产精品一区二区三区观看| 欧美在线高清| 欧美在线观看网站| 影音先锋亚洲一区|