sleep(n)函数实现

来源:互联网 发布:淘宝怎么设置千人千面 编辑:程序博客网 时间:2024/05/16 09:00

sleep(n)是将当前进程挂起n秒或者在此期间被一个不能忽略的信号的到达所唤醒。
sleep由3个步骤组成:
signal(SIGALRM,handler); //接收内核给的SIGALRM信号
alarm(n);//设置定时时间一到就发送一个信号SIGALRM
pause();//将进程挂起


alarm(0)意味着关掉闹钟
pause()挂起调用进程直到一个信号到达,如果这个信号终止了调用进程,pause没有返回。如果调用进程用一个处理函数捕获,在控制从处理函数处返回后pause返回。这种情况下errno被设置为EINTR

0 0