C語言pause()函數:讓進程暫停直到信號出現
頭文件:
1
|
#include <unistd.h> |
定義函數:
1
|
int pause( void ); |
函數說明:pause()會令目前的進程暫停(進入睡眠狀態), 直到被信號(signal)所中斷.
返回值:只返回-1.
錯誤代碼:EINTR 有信號到達中斷了此函數.
C語言alarm()函數:設置信號傳送鬧鐘
頭文件:
1
|
#include <unistd.h> |
定義函數:
1
|
unsigned int alarm(unsigned int seconds); |
函數說明:alarm()用來設置信號SIGALRM 在經過參數seconds 指定的秒數后傳送給目前的進程. 如果參數seconds 為0, 則之前設置的鬧鐘會被取消, 并將剩下的時間返回.
返回值:返回之前鬧鐘的剩余秒數, 如果之前未設鬧鐘則返回0.
范例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <unistd.h> #include <signal.h> void handler() { printf ( "hello\n" ); } main() { int i; signal (SIGALRM, handler); alarm(5); for (i = 1; i < 7; i++) { sleep(1); } } |
執行:
1
2
3
4
5
6
|
sleep 1 ... sleep 2 ... sleep 3 ... sleep 4 ... sleep 5 ...hello sleep 6 ... |
C語言sleep()函數:讓進程暫停執行一段時間
頭文件:
1
|
#include <unistd.h> |
定義函數:
1
|
unsigned int sleep(unsigned int seconds); |
函數說明:sleep()會令目前的進程暫停, 直到達到參數seconds 所指定的時間, 或是被信號所中斷.
返回值:若進程暫停到參數seconds 所指定的時間則返回0, 若有信號中斷則返回剩余秒數.