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系統程式設計 第二版
100
|
第四章
分散∕聚集 I/O
分散/聚集
scatter/gather
I/O 是一種進行輸入和輸出的方法;透過此方法,單一
系統呼叫得以從緩衝區向量(a vector of buffers)寫入單一資料串流,或者從單一資料
串流讀取到緩衝區向量。這個類型的 I/O 之所以會有此名稱,是因為資料會被分散至
scattered into)或聚集自(gathered from)特定的緩衝區向量。這種方式的輸入和輸
出又稱為向量(vectoredI/O。相對而言,第 2 章的標準讀取和寫入系統呼叫,所提供
的是線性(linearI/O
相較於線性 I/O 的做法,分散∕聚集 I/O 有幾項優點:
較自然的撰碼模式
如果你的資料原本就是採用分段的方式(segmented)—例如,標頭檔中預定義結構
的欄位—向量 I/O 可對其進行直覺的操作。
效率
單次向量 I/O 操作可以取代多次線性 I/O 操作。
效能
相較於線性 I/O 實作,向量 I/O 實作除了可以減少系統呼叫的次數,還可以經由內部
的優化提供效能的改善。
不可分割
不同於多次線性 I/O 操作,一個行程可以執行單次向量 I/O 操作,而不會有與另一個
行程的操作交織在一起的風險。
readv() writev()
POSIX 1003.1-2001 定義了,而且 Linux 實作了,一對採用分散∕聚集 I/O 機制的系統
呼叫。Linux 的實作滿足了前一節所列示的各項目標。
readv()
函式會把
count
個區段從檔案描述器
fd
讀取到
iov ...
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