Linux下,实现一个sleep函数

本文介绍了如何在Linux中实现一个sleep函数,通过结合alarm函数和pause函数,创建了一个名为mysleep的函数。文章详细讲解了alarm函数的工作原理,并通过实例展示了如何使用这两个函数。最后,针对可能出现的问题进行了改进,确保在进程被切出后仍能正确接收信号,避免程序崩溃。
摘要由CSDN通过智能技术生成

alarm函数

首先,想要实现这个sleep函数,就得先做一些铺垫知识,所以就得先了解一下alarm函数,调用alarm函数可以设定一个闹钟,也就是告诉内核(kernel)在seconds秒之后给当前进程发送一个SIGALRM信号,该信号的默认动作是终止当前进程。这个函数的返回值是0,或者离你设定闹钟时间所剩下的秒数。举个简单的例子,你订了一个30分钟的闹钟,如果你一直没被打扰,当半小时后你的闹钟响了,它就返回0值,而当你睡了20分钟时,舍友进来将你吵醒,你还想继续睡,就设定一个20分钟后响的闹钟,这时候就会返回一个10分钟,即就是在你被吵醒到你闹钟本该响之间剩下的时间了。

先通过下面的代码熟悉alarm函数

#include<stdio.h>
#include<unistd.h>

int main()
{
    int count = 1;
    alarm(1);
    for(;1;count++)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值