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, 若有信号中断则返回剩余秒数.