C语言中的pause()函数和alarm()函数以及sleep()函数
C语言pause()函数:让进程暂停直到信号出现
头文件:
#include<unistd.h>
定义函数:
intpause(void);
函数说明:pause()会令目前的进程暂停(进入睡眠状态),直到被信号(signal)所中断.
返回值:只返回-1.
错误代码:EINTR有信号到达中断了此函数.
C语言alarm()函数:设置信号传送闹钟
头文件:
#include<unistd.h>
定义函数:
unsignedintalarm(unsignedintseconds);
函数说明:alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程.如果参数seconds为0,则之前设置的闹钟会被取消,并将剩下的时间返回.
返回值:返回之前闹钟的剩余秒数,如果之前未设闹钟则返回0.
范例
#include<unistd.h> #include<signal.h> voidhandler() { printf("hello\n"); } main() { inti; signal(SIGALRM,handler); alarm(5); for(i=1;i<7;i++) { printf("sleep%d...\n",i); sleep(1); } }
执行:
sleep1... sleep2... sleep3... sleep4... sleep5...hello sleep6...
C语言sleep()函数:让进程暂停执行一段时间
头文件:
#include<unistd.h>
定义函数:
unsignedintsleep(unsignedintseconds);
函数说明:sleep()会令目前的进程暂停,直到达到参数seconds所指定的时间,或是被信号所中断.
返回值:若进程暂停到参数seconds所指定的时间则返回0,若有信号中断则返回剩余秒数.