基本信息
頭檔案: unistd.h
語法: void usleep(int micro_seconds);
返回值: 無
注意事項
參見:usleep() 與sleep()類似,用於延遲掛起進程。進程被掛起放到ready queue。
是一般情況下,延遲時間數量級是秒的時候,儘可能使用sleep()函式。且此函式已被廢除,可使用nanosleep。如果延遲時間為幾十毫秒(1ms = 1000us),或者更小,儘可能使用usleep()函式。這樣才能最佳的利用CPU時間
該usleep()功能將導致調用執行緒暫停執行直到數微秒的實時參數指定了useconds或信號傳遞到調用執行緒,其作用是調用一個信號的捕獲功能或終止進程。暫停的時間可能比所要求的系統的其他活動的調度要長。
該useconds參數必須小於1000000。如果useconds值是0,則調用沒有影響。
如果一個sigalrm信號生成調用進程的執行過程中,如果usleep() sigalrm信號被忽略或無法交貨,這是未指定是否usleep()返回時的sigalrm預定的信號。如果信號是被封鎖,也未指定是否後尚未usleep()返回或是丟棄。
如果一個sigalrm信號生成調用進程執行usleep()期間,除了由於對alarm()事先打電話,如果sigalrm信號不被忽略或無法交貨,它是不確定的,是否有其他信號比造成任何影響usleep()返回。
如果信號捕捉功能的中斷usleep()檢查或變化的時間sigalrm將產生,與sigalrm信號相關的動作,或是否sigalrm信號被阻止從交貨,結果是不確定的。
如果信號捕捉功能的中斷usleep()和電話siglongjmp()或longjmp()恢復環境保存到usleep()呼叫之前,行動與sigalrm信號和時間,sigalrm信號將產生未指定。它還未指定是否sigalrm信號被阻斷,除非進程的信號禁止恢復作為環境的一部分。
實現可能限制定時器值的粒度。對於每個時間間隔定時器,如果請求的定時器值需要比實現支持細粒度的,實際的定時器的值將捨入為下一個支持的價值。
usleep()和任何以下之間的相互作用是不確定的: