關於標準IO流的一些認識

2021-05-24 06:07:11 字數 686 閱讀 9776

c語言庫中有乙個file的結構體,當我們開啟乙個檔案的時候,會用到file*型別的指標來操作fopen所返回的乙個指標,這個指標就是流。

流是作業系統管理io的乙個引入的概念,乙個流是與乙個描述符繫結在一起的。所以也可以根據流來得到乙個描述符。

標準io庫有三種型別的緩衝:1、全緩衝2、行緩衝3、無緩衝。全緩衝是指,當乙個操作乙個流的時候,如果打算往流裡寫進去一些資訊,那麼如果這是全緩衝的流,它會先把資訊寫在它的緩衝裡面,直到資訊結束滿或者緩衝區空間已滿的時候,才會觸發io寫操作。

例如,當我們需要往乙個stdout標準輸出寫入一些資訊的時候,那麼全緩衝的stdout會把你想寫的資訊先快取在它的緩衝區裡面,這樣的話,只有等你把要寫的資訊寫完整了、或緩衝區空間不夠用了的情況下,作業系統才會為我們執行真正的io寫操作。也就是才會把資訊給寫到輸出,而並不是你寫乙個字元的資訊,作業系統就幫我們執行乙個io的寫操作,這樣的話明顯浪費資源。反之,stdin也是一樣。

接著是乙個行緩衝,跟全緩衝差不多的概念,但是這個行緩衝會在stdout遇到乙個'/n'即回車符號的時候,就執行寫操作。

無緩衝,stdout收到乙個字元寫乙個字元,不過實際上很少情況下會真正這樣做,因為還受到乙個硬體的限制,有的硬體會有快取的操作,這個是程式級別難以控制的。

fgets這個函式每次只能獲得一行的資訊。而一般在互動的裝置中,stdin跟stdout預設是全緩衝的。stderr是無緩衝的流、

IO流的一些基本筆記

1 file類 作用 與外界建立聯絡 2個常量 路徑分隔符 file.pathseparator 分號 檔案分隔符 file.separator windows 其他作業系統 1 路徑的表示形式 b string path e file.separator xp file.separator tes...

關於Jsoup的一些認識

jsoup是解析html的工具,使用時要匯入jsoup.jar包 獲取 的html檔案 獲取jsoup連線 connection con jsoup.connect classno 獲取document物件 document doc con.get 獲取標籤中的html內容,例如sdskd中標籤的內...

關於宗教的一些認識

來京之後,我切實感受到了宗教的存在。實驗室的乙個小夥伴,是個 徒。為了了解 教的文化活動,我參加了好幾次她所在的教會的活動。感受頗多 其一,彼此陌生的人,因為信仰,居然可以短時間內形成親密團結的氛圍,滿臉樸實 毫無警惕地敞開心懷,進行懺悔,進行交流。其二,活動的形式有歌唱讚美主,演說認識主的過程。讚...