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系統程式設計 第二版
94
|
第三章
標準 I/O 函式本來就具備
執行緒安全性
thread-safe
)。在內部,它們會關聯到一個鎖
lock)、一個上鎖計數(lock count),而且每個已開啟串流會被關聯到一個擁有執行緒
owning thread)。任何執行緒在發出任何 I/O 要求之前,必須先取得「鎖」,成為擁有
執行緒。兩個或多個執行緒操作相同的串流時,不能干擾標準 I/O 操作,因此在單一函
式呼叫的執行環境內,標準 I/O 操作是不可分割的。
當然,實務上,許多應用程式所需要的不可分割性大於個別函式呼叫的層次。舉例來
說,假設單一執行緒中有多個執行緒發出寫入要求。因為標準 I/O 函式具執行緒安全
性,個別的寫入操作將不會相互干擾而導致輸出混亂的結果。也就是,即使有兩個執行
緒同時發出寫入要求,上鎖機制將可確保其中一個寫入要求比另一個先完成。但如果行
程想要連續發出多個寫入要求,要如何讓另一個執行緒的寫入要求不但不會干擾到個別
的要求,也不會干擾到一整組的要求?為此,標準 I/O 程式庫提供了一系列的函式,可
用於個別操作與串流有關的鎖。
手動檔案上鎖
函式
flockfile()
會等到
stream
不再被鎖上,接著取得串流的鎖,提高上鎖計數,成為
串流的擁有執行緒,然後返回:
#include <stdio.h>
void flockfile (FILE *stream);
函式
funlockfile()
用於遞減與
stream
相對應的上鎖計數:
#include <stdio.h>
void funlockfile (FILE ...
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