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系統程式設計 第二版
96
|
第三章
int feof_unlocked (FILE *stream);
int ferror_unlocked (FILE *stream);
int fileno_unlocked (FILE *stream);
void clearerr_unlocked (FILE *stream);
這些函式的行為如同它們的「會上鎖」的表親,但是它們不會檢查或取得
stream
的鎖。
如果需要上鎖,那麼程式設計者必須負責手動取得以及釋放串流的鎖。
委派
I/O
使用不會上鎖的標準 I/O 函式,在效能上可獲得相當的好處。此外,程式
碼不需要為了上鎖而擔心使用
flockfile()
所導致的複雜操作。設計應用
程式的時候,你可以試著把所有的 I/O 委派給單一執行緒(或把所有的
I/O 委派給一個執行緒集區;在該集區中,每個串流正好會被映射至一個
執行緒)。
雖然 POSIX 有替標準 I/O 函式定義了一些不會上鎖的變體,但是上面所列示的函式都不是
POSIX 定義的。它們全都是 Linux 特有的函式,不過各種其他的 Unix 系統支援其子集。
我們將會在第 7 章對執行緒做完整的探討。
標準 I/O 的缺陷
由於標準 I/O 被廣泛採用,一些專家指出了其中的缺陷。有些函式,例如
fgets()
,有時
會不敷使用。有些函式,例如
gets()
,太過可怕應該排除在標準之外。
標準 I/O 最大的問題在於效能受到兩次複製(double copy)的影響。讀取資料時,標準
I/O 會對核心進行
read()
系統呼叫,從核心複製資料到標準 ...
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