文件IO(一)

文件IO(一)

  • 文件IO
    • 文件的分類
    • 在文件IO下,文件分類
      • 按存儲的內容分
      • 按照操作分
    • 標準IO和文件IO的區別
    • 系統調用和庫函數的區別

文件IO

  • 把程序暫存在內存的數據,存儲到本地外存上

文件的分類

在Linux系統下,文件共分為7類
- 普通文件
d 目錄文件
p 管道文件
l 鏈接文件
b 塊設備文件
c 字符設備文件
s 套接字(Socket)文件 跨主機之間的通信

在文件IO下,文件分類

按存儲的內容分

文本文件:存儲的是數據的阿斯克碼(0~127),EOF(end of file,-1)
二進制文件:存儲的是數據在內存上的原樣存儲
文本文件,在存儲的時候,需要數據和阿斯瑪轉換,一般存儲數據量比較大的數據,最終結果
二進制文件,一般存儲中間變量

在這里插入圖片描述
在這里插入圖片描述

按照操作分

帶緩沖區操作的文件:標準IO,內存上的緩沖區,庫函數
不帶緩沖區操作的文件:文件IO

在這里插入圖片描述
在這里插入圖片描述

標準IO和文件IO的區別

標準IO
1.標準IO由ANSI C標準定義, 庫函數提供的
2.跨平臺性,移植性較好
3.有緩沖區的操作,標準IO的效率比文件IO的效率高
4.一般以文件流指針作為操作依據
文件IO
1.由POSIX定義,操作系統提供的系統調用提供的
2.移植性差
3.效率較低
4.一般以文件描述符作為操作依據

在這里插入圖片描述

系統調用和庫函數的區別

  1. 提供者:
  • 系統調用:由操作系統內核提供。它們是內核暴露給應用程序的接口,用于請求內核執行某些操作,如
    文件操作、進程管理、內存管理等。
  • 庫函數:由標準庫或第三方庫提供。這些函數通常是對系統調用的封裝,也可能包含其他功能,如數學
    運算、字符串處理等。
  1. 運行時間:
  • 系統調用:屬于機器時間,執行時通常涉及用戶態到內核態的切換,這通常比用戶態內的操作更耗時。
  • 庫函數:屬于用戶時間,在用戶態執行,不涉及上下文切換,因此通常更快。
  1. 運行空間:
  • 系統調用:在內核空間執行,這是操作系統保護的區域,用于執行特權操作。
  • 庫函數:在用戶空間執行,這是應用程序運行的地方。
  1. 效率:
  • 系統調用:由于涉及上下文切換和內核態執行,通常比庫函數調用更耗時。
  • 庫函數:在用戶態執行,沒有上下文切換的開銷,因此通常更高效。
  1. 移植性:
  • 系統調用:依賴于特定的操作系統和內核,因此通常不易移植到其他操作系統。
  • 庫函數:如果遵循標準庫規范,通常可以在多種操作系統上運行,具有較好的移植性。
  1. 返回值:
  • 系統調用:通常返回特定的錯誤碼或狀態信息,用于指示調用是否成功以及可能的錯誤原因。
  • 庫函數:返回值取決于具體的函數,可能返回計算結果、指針、狀態碼等。
  1. 功能的復雜程度:
  • 系統調用:通常執行底層的、原子性的操作,如打開文件、創建進程等。
  • 庫函數:可能執行更復雜的任務,這些任務可能涉及多個系統調用或其他庫函數的組合。
  1. 功能能否重寫:
  • 系統調用:作為操作系統的一部分,通常不能由用戶重寫。
  • -庫函數:用戶可以根據自己的需要重寫庫函數,或者使用不同的庫實現相同的功能。
    總的來說,系統調用提供了與操作系統內核交互的接口,而庫函數則為用戶提供了更高級、更易于使用的功能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17660.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI答題項目,無門檻答題一小時收益30+

朋友們,今天我想和大家探討一個令人興奮的副業機遇。你是否曾感覺到日常工作的枯燥乏味,而又渴望找到一種輕松的賺錢方式來增加你的收入?今天我將和你分享的這個項目正是你所期待的。 項目的核心是利用AI技術來回答網上付費用戶的問題&…

重生之我要精通JAVA--第六周筆記

File 路徑 相對路徑 路徑1:“a.txt” 路徑2:“abc\\a.txt” 絕對路徑 路徑1:“c:\\a.txt” 路徑2:“c:\\abc\\a.txt” File對象就表示一個路徑,可以是文件的路徑、也可以是文件夾的路徑這個路徑可以是存在的&…

linux線程,線程控制與線程相關概念

線程概念 線程這個詞或多或少大家都聽過,今天我們正式的來談一下線程; 在我一開始的概念中線程就是進程的一部分,一個進程中有很多個線程,這個想法基本是正確的,但細節部分呢我們需要細細講解一下; 什么…

“揭秘:為什么羊駝Ollama成為計算機運行大型語言模型的最佳拍檔?“

最近,AIM 評測了在計算機上本地運行大語言模型(LLM)的最佳工具,Ollama 脫穎而出,成為最高效的解決方案,提供了無與倫比的靈活性。Ollama 是 Jeffrey Morgan 開發的一款開源工具,它正在徹底改變愛…

我被恐嚇了,對方揚言要壓測我的網站

大家好我是聰,昨天真是水逆,在技術群里交流問題,竟然被人身攻擊了!罵的話太難聽具體就不加討論了,人身攻擊我可以接受,我接受不了他竟然說要刷我接口!!!!這下…

啟用標準大頁后內存使用率下降了

未啟用前 [rootol819c ~]# free -htotal used free shared buff/cache available Mem: 9.3Gi 984Mi 379Mi 1.5Gi 8.0Gi 6.8Gi Swap: 15Gi 3.0Mi 15Gi [rootol819c ~]# free -htotal …

【NumPy】掌握NumPy的histogram函數:數據直方圖的生成與應用詳解

🧑 博主簡介:阿里巴巴嵌入式技術專家,深耕嵌入式人工智能領域,具備多年的嵌入式硬件產品研發管理經驗。 📒 博客介紹:分享嵌入式開發領域的相關知識、經驗、思考和感悟,歡迎關注。提供嵌入式方向…

速度百倍提升,高性能 Python 編譯器 Codon 火了

引言 在當下的編程世界里,Python由于其易用性和強大的庫支持在數據科學、人工智能和網頁開發等多個領域占據著舉足輕重的地位。然而,Python的執行速度往往成為開發者的一大痛點。 針對 這一問題,Codon項目正試圖提供一個高效的解決方案。Codo…

java新特性(Stream API)

什么是 Stream API? Stream API 是 Java 8 引入的一個用于對集合數據進行函數式編程操作的強大的庫。它允許我們以一種更簡潔、易讀、高效的方式來處理集合數據,可以極大提高 Java 程序員的生產力,是目前為止對 Java 類庫最好的補充。 Stream API 的核心思想是將數據處理操作…

小識MFC,一套設計優雅與不優雅并存的類庫----小話MFC(2)

Q1: CPoint繼承于POINT,這樣有什么好處? A: 繼承的一個最基本的好處當然就是減少代碼量。CPoint和POINT內部數據一樣,只是一個提供了更多的方法來操作對象。 typedef struct tagPOINT {LONG x;LONG y; } POINT, *P…

【Flutter】動畫介紹隱式動畫

🔥 本文由 程序喵正在路上 原創,CSDN首發! 💖 系列專欄:Flutter學習 🌠 首發時間:2024年5月28日 🦋 歡迎關注🖱點贊👍收藏🌟留言🐾 目…

SpringMvc-restful設計風格

Restful 1、入門1.1 簡介1.2 實例 1、入門 1.1 簡介 RESTFul是什么 RESTFul是WEB服務接口的一種設計風格。 RESTFul定義了一組約束條件和規范&#xff0c;可以讓WEB服務接口更加簡潔、易于理解、易于擴展、安全可靠。 1.2 實例 web.xml <?xml version"1.0"…

5、xss-labs之level6

一、level6-----大小寫繞過 1、測試分析 測試了之前用過的payload&#xff0c;發現都不行&#xff0c;并且level4使用的Java偽協議也不行&#xff0c;可以得出<>、script、onclick都被過濾 2、構造payload 因為href被過濾&#xff0c;可以試一下大寫HREF 初試payload…

沒人愿意和我們最好的工程師一起工作

幾年前&#xff0c;有一位技術非常好的工程師&#xff08;我們叫他“喬恩”&#xff09;為我工作。 他的代碼寫得很好&#xff0c;代碼審查&#xff08;PRs&#xff09;也完成得很快。從技術角度來看&#xff0c;他是個出色的工程師。 但是我們從其他工程師那里得到了一些關于…

Python實現解碼二進制數據以匹配給定的C++結構體

要在Python中實現解碼二進制數據以匹配給定的C結構體Ytest&#xff0c;你需要了解每個字段在結構體中的偏移量&#xff08;由于結構體內存對齊&#xff0c;這些偏移量可能與字段的順序和大小不完全對應&#xff09;。不過&#xff0c;在沒有指定內存對齊的情況下&#xff0c;我…

使用nvm管理node多版本(安裝、卸載nvm,配置環境變量,更換npm淘寶鏡像)淘寶的鏡像域名更換

最近 使用nvm 管理 node 的時候發現nvm install node版本號 總是失敗。 nvm install 20.12.2Error retrieving "http://npm.taobao.org/mirrors/node/latest/SHASUMS256.txt": HTTP Status 404查看原因&#xff0c;因為淘寶的鏡像域名更換&#xff0c;由于 npm.taob…

2020職稱繼續教育--發揮好“顯著優勢”,堅持和完善生態文明制度體系,促進人與自然和諧共生

單選題&#xff08;共7題&#xff0c;每題5分&#xff09; 1、我國生態脆弱區廣布&#xff0c;適宜生存的空間不足&#xff08;&#xff09;。 B、三分之一 2、按照傳統文化的說法&#xff0c;制度體系與治理體系&#xff0c;是“體”和“用”的關系&#xff0c;強調&#xff…

BI系統:數據驅動的決策利器,引領企業走向智能化

在當今這個數據驅動的時代&#xff0c;商業智能&#xff08;BI&#xff09;系統已成為企業不可或缺的工具。BI系統不僅提高了數據處理和分析的效率&#xff0c;更重要的是&#xff0c;它能夠幫助企業做出更加明智和精準的決策。在數聚多年的從業經驗來看&#xff0c;BI系統的重…

基于直接二元搜索的片上偏振分束器設計 (Nature Photonics, 9, 6, (2015))案例復現

時間—2024.6.08 騰訊會議 智能算法驅動的光子學設計與應用

Dream

好像很多人夢寐以求的都是別人已經擁有的&#xff0c;多少人奮斗一生的目標&#xff0c;卻只是別人的起點&#xff0c;人生而自由&#xff0c;只是不在枷鎖之中&#xff0c;生活中沒有人不遺憾&#xff0c;只是沒有人喊疼&#xff0c;時間不會重來&#xff0c;已經過去了就讓它…