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
|
55
int ret;
ret = truncate ("./pirate.txt", 45);
if (ret ==
1) {
perror ("truncate");
return
1;
}
return 0;
}
結果會產生長度 45 個位元組具有如下內容的
pirate.txt
檔案:
Edward Teach was a notorious English pirate.
多工式 I/O
應用程式通常需要控制一個以上的檔案描述器,反覆地與鍵盤輸入(
stdin
)、行程間通
訊以及若干檔案進行 I/O。現代的事件驅動(event-driven)圖形化操作介面(graphical
user interface,簡稱 GUI)應用程式可透過其 mainloop(主迴圈)來處理數以百計之待
決事件。
5
不藉助執行緒(也就是分開服務每個檔案描述器)單一行程無法在同一時間控制一個以
上的檔案描述器。只要每個檔案描述器隨時都可以被讀取或寫入,就能夠把多個檔案描
述器處理得很好。但是一遇到尚未準備好的檔案描述器(舉例來說,如果進行
read()
系統呼叫時,資料尚未備妥)行程將受到阻擋,不再能夠服務其他的檔案描述器。行程
可能只會受阻幾秒鐘的時間,而讓應用程式的效率變低以及困擾用戶。然而,如果該檔
案描述器之上一直都沒有出現可用的資料,則行程就會永遠受到阻擋。因為各個檔案描
述器之 I/O 往往都是相互關聯的—例如導管—非常可能會出現「一個檔案描述器備妥與
否,取決於另一個檔案描述器是否被服務過」的情況 ...
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