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系統程式設計 第二版
時間
|
409
一次成功的
usleep()
叫用,可讓進行調用的行程休眠
usec
微秒。不幸的是,BSD
Single UNIX SpecificationSUS)對此函式的原型有歧見。此函式的 BSD 版本具有一
個型別為
unsigned long
的參數,而且沒有傳回值。然而,此函式的 SUS 版本則具有一
個型別為
useconds_t
的參數,而且會傳回一個
int
值。如果
_XOPEN_SOURCE
被定義成
500
或更高的值,Linux 會採用 SUS 的做法。如果
_XOPEN_SOURCE
未定義,或者被設定成小
500
的值,則 Linux 會採用 BSD 的做法。
執行成功時,SUS 版本會傳回
0
,發生錯誤時,則會傳回
-1
。有效的
errno
值是
EINTR
(如果休眠的時候遭到一個信號中斷)或是
EINVAL
(如果
usecs
太大;在 Linux 上,此
型別的整個範圍都是有效的,因此絕不會發生此錯誤)。
按規定,
useconds_t
型別是一個無號整數,可以保存高達 1,000,000 的值。
由於這兩種不相容原型之間的差異,以及事實上有些 Unix 系統僅支援其中一種原型,
所以聰明的做法就是不要明確地在你的程式碼中引用
useconds_t
型別。要達到最大的移
植性,應該假定參數是一個
unsigned int
,而不要依賴
usleep()
的傳回值:
void usleep (unsigned int usec);
它的用法如下所示:
unsigned int usecs = 200;
usleep (usecs); ...
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