• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > 如何辨別Linux中的open和fopen函數(shù)

    如何辨別Linux中的open和fopen函數(shù)

    時(shí)間: 孫勝652 分享

    如何辨別Linux中的open和fopen函數(shù)

      open和fopen是Linux系統(tǒng)的調(diào)用函數(shù),因?yàn)檩^為相似,很多人會將其混淆,下面學(xué)習(xí)啦小編給大家介紹下open和fopen的區(qū)別之處,不明白的朋友可以來了解下。

      1.緩沖文件系統(tǒng)

      緩沖文件系統(tǒng)的特點(diǎn)是:在內(nèi)存開辟一個(gè)“緩沖區(qū)”,為程序中的每一個(gè)文件使用,當(dāng)執(zhí)行讀文件的操作時(shí),從磁盤文件將數(shù)據(jù)先讀入內(nèi)存“緩沖區(qū)”, 裝滿后再從內(nèi)存“緩沖區(qū)”依此讀入接收的變量。執(zhí)行寫文件的操作時(shí),先將數(shù)據(jù)寫入內(nèi)存“緩沖區(qū)”,待內(nèi)存“緩沖區(qū)”裝滿后再寫入文件。由此可以看出,內(nèi)存 “緩沖區(qū)”的大小,影響著實(shí)際操作外存的次數(shù),內(nèi)存“緩沖區(qū)”越大,則操作外存的次數(shù)就少,執(zhí)行速度就快、效率高。一般來說,文件“緩沖區(qū)”的大小隨機(jī)器 而定。

      fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等

      2.非緩沖文件系統(tǒng)

      緩沖文件系統(tǒng)是借助文件結(jié)構(gòu)體指針來對文件進(jìn)行管理,通過文件指針來對文件進(jìn)行訪問,既可以讀寫字符、字符串、格式化數(shù)據(jù),也可以讀寫二進(jìn)制數(shù) 據(jù)。非緩沖文件系統(tǒng)依賴于操作系統(tǒng),通過操作系統(tǒng)的功能對文件進(jìn)行讀寫,是系統(tǒng)級的輸入輸出,它不設(shè)文件結(jié)構(gòu)體指針,只能讀寫二進(jìn)制文件,但效率高、速度 快,由于ANSI標(biāo)準(zhǔn)不再包括非緩沖文件系統(tǒng),因此建議大家最好不要選擇它。本書只作簡單介紹。open, close, read, write, getc, getchar, putc, putchar 等。

      open 是系統(tǒng)調(diào)用 返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,fopen是C的庫函數(shù),返回的是一個(gè)指向文件結(jié)構(gòu)的指針。

      fopen是ANSIC標(biāo)準(zhǔn)中的C語言庫函數(shù),在不同的系統(tǒng)中應(yīng)該調(diào)用不同的內(nèi)核api

      linux中的系統(tǒng)函數(shù)是open,fopen是其封裝函數(shù),個(gè)人觀點(diǎn)。僅供參考。

      文件描述符是linux下的一個(gè)概念,linux下的一切設(shè)備都是以文件的形式操作。如網(wǎng)絡(luò)套接字、硬件設(shè)備等。當(dāng)然包括操作文件。

      fopen是標(biāo)準(zhǔn)c函數(shù)。返回文件流而不是linux下文件句柄。

      設(shè)備文件不可以當(dāng)成流式文件來用,只能用open

      fopen是用來操縱正規(guī)文件的,并且設(shè)有緩沖的,跟open還是有一些區(qū)別

      一般用fopen打開普通文件,用open打開設(shè)備文件

      fopen是標(biāo)準(zhǔn)c里的,而open是linux的系統(tǒng)調(diào)用。

      他們的層次不同。

      fopen可移植,open不能

      3. 性能

      我認(rèn)為fopen和open最主要的區(qū)別是fopen在用戶態(tài)下就有了緩存,在進(jìn)行read和write的時(shí)候減少了用戶態(tài)和內(nèi)核態(tài)的切換,而open則每次都需要進(jìn)行內(nèi)核態(tài)和用戶態(tài)的切換;

      表現(xiàn)為:

      (1)如果順序訪問文件,fopen系列的函數(shù)要比直接調(diào)用open系列快;

      (2)如果隨機(jī)訪問文件open要比fopen快。

      經(jīng)典回答:

      前者屬于低級IO,后者是高級IO。

      前者返回一個(gè)文件描述符(用戶程序區(qū)的),后者返回一個(gè)文件指針。

      前者無緩沖,后者有緩沖。

      前者與 read, write 等配合使用, 后者與 fread, fwrite等配合使用。

      后者是在前者的基礎(chǔ)上擴(kuò)充而來的,在大多數(shù)情況下,用后者。

      上面就是open和fopen的區(qū)別介紹了,兩者的區(qū)別主要是緩沖的區(qū)別,fopen有緩沖而open沒有,還有它們的層次也有所不同,fopen可移植而open不能。

    316124 主站蜘蛛池模板: 久热这里只有精| 北条麻妃毛片在线视频| 久久亚洲sm情趣捆绑调教| 色五月激情小说| 学长在下面撞我写着作业l| 亚洲精品午夜久久久伊人| xxxx中文字幕| 日日碰狠狠添天天爽超碰97| 午夜dj在线观看免费视频| 992人人tv| 日韩精品久久久肉伦网站 | 亚洲欧洲自拍拍偷午夜色| 亚洲欧美日韩精品久久奇米色影视| 日韩中文字幕在线观看视频| 卡通动漫第一页综合专区| 97人人添人澡人人爽超碰| 最猛91大神ben与女教师| 四虎884tt紧急大通知| 97超级碰碰碰碰久久久久| 日韩精品视频在线播放| 午夜成人精品福利网站在线观看| 91视频第一页| 日本精品少妇一区二区三区| 免费夜色污私人影院在线观看 | 国产色秀视频在线观看| 久久这里只有精品66| 精品久久精品久久| 国产精品单位女同事在线| 久久久久无码国产精品不卡| 男人和女人做爽爽视频| 国产无遮挡又黄又爽免费视频 | 天天躁狠狠躁夜躁2021| 亚洲乱码在线播放| 翁熄性放纵交换| 国产网站麻豆精品视频| 久久久久久久久中文字幕 | 少妇激情av一区二区| 亚洲成Aⅴ人片久青草影院| 色一情一乱一伦一区二区三区| 在线a免费观看最新网站| 久久久无码精品亚洲日韩蜜桃 |