Skip to Content
LINUX系統程式設計 第二版
book

LINUX系統程式設計 第二版

by Robert Love
December 2013
Intermediate to advanced
496 pages
8h 57m
Chinese
GoTop Information, Inc.
Content preview from LINUX系統程式設計 第二版
緩衝式 I/O
|
97
寫入操作稍微複雜一點,但是仍然可以避免兩次複製的情況。送出寫入要求時,此實作
會記錄指標。最後,當準備出清資料到核心時,此實作會掃描其所儲存的指標清單,以
便寫出資料。這項工作可經由
writev()
利用「分散∕聚集」(scatter/gatherI/O 來完
成,因此僅進行一次系統呼叫。(我們將在下一章探討分散∕聚集 I/O。)
而高度優化的用戶緩衝程式庫,用來解決兩次複製問題的實作,類似於我們剛才所做的
討論。此外,有些開發者選擇實作自己的用戶緩衝解決方案。儘管有這些替代方案,標
I/O 仍廣受歡迎。
結語
標準 I/O 是標準 C 程式庫所提供的用戶緩衝程式庫。如果不考慮它的幾個缺點,它可說
是一種有效而且受歡迎的解決方案。許多 C 程式員,實際上,只知道標準 I/O。當然,
對於終端機(terminalI/O,以列為基礎的緩衝機制最為理想,標準 I/O 是唯一的選
擇。你通常不會直接使用
write()
將資料印往標準輸出!
當以下有任何一項為真時,就可以使用標準 I/O(一般來說,還包含用戶緩衝機制):
你可以預期會出現多次系統呼叫的問題,而你想要降低呼叫的次數以便儘量減少
開銷。
效能至關重要,而你想要確保所有 I/O 均在「對齊區塊的邊界上」採用區塊大小的
團塊。
你的存取方式,以字符或列為基礎,而你希望介面可以輕易使用這種存取方式,不
需要進行任何額外的系統呼叫。
相較於低階的 Linux 系統呼叫,你比較喜歡使用較高階的介面。
然而,當你直接使用 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

優雅的SciPy|Python科學研究的美學

優雅的SciPy|Python科學研究的美學

Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9789862769812