linux 定时器和sleep,linux中sleep函数的使用和总结
在linux编程中,有时候会用到定时功能,常见的是用sleep(time)函数来睡眠time秒;但是这个函数是可以被中断的,也就是说当进程在睡眠的过程中,如果被中断,那么当中断结束回来再执行该进程的时候,该进程会从sleep函数的下一条语句执行;这样的话就不会睡眠time秒了;
头文件: #include
函数:unsigned int sleep (unsigned int seconds);//n秒
此外:int usleep (useconds_t usec);//n微秒
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include
#include
#include
#include
void sig_handler(int num)
{
printf("\nrecvive the signal is %d\n", num);
}
int main()
{
int time = 20;
signal(SIGINT, sig_handler);
printf("enter to the sleep.\n");
sleep(time);
printf("sleep is over, main over.\n");
exit(0);
}
运行结果截图如下:
从运行结果可以看出,当我按下Ctrl+c发出中断的时候,被该函数捕获,当处理完该信号之后,函数直接执行sleep下面的语句;
备注:sleep(time)返回值是睡眠剩下的时间;
下面的例子是真正的睡眠time时间(不被中断影响):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include
#include
#include
#include
void sig_handler(int num)
{
printf("\nrecvive the signal is %d\n", num);
}
int main()
{
int time = 20;
signal(SIGINT, sig_handler);
printf("enter to the sleep.\n");
//sleep(time);
do{
time = sleep(time);
}while(time > 0);
printf("sleep is over, main over.\n");
exit(0);
}
运行结果截图如下:
备注:其中recevie the signal is 2.表示该信号是中断信号;信号的具体值如下图所示:
最后是sleep函数的man手册,命令为:man 3 sleep
备注:可以使用sleep来实现定时发送机制,例如server和client通信,定时发送数据或者定时接受数据(设置避免打扰时间内不接收数据),当然定时接受数据可能会造成数据丢失(超过缓存)
linux 定时器和sleep,linux中sleep函数的使用和总结相关推荐
- linux less 带颜色,less中color函数字体颜色计算
LESS 提供了一系列的颜色运算函数. 颜色会先被转化成 HSL 色彩空间, 然后在通道级别操作: lighten(@color, 10%); // return a color which is 1 ...
- linux定时器错误使用,linux下定时器的使用
Linux下定时器的使用主要用到两个函数:setitimer()和getitimer(); 注意:setitimer()一个进程中只能有一个,下一个会覆盖前一个的定时. Linux系统给每个进程提供了 ...
- linux 定时器_通过linux源码分析nodejs的keep-alive
之前已经分析过了keep-alive,最近在使用nodejs的keep-alive的时候发现了遗漏了一个内容.本文进行一个补充说明.我们先看一下nodejs中keep-alive的使用. enable ...
- linux定时器跑命令,linux下运行定时器(cron/centos/js脚本)
目的:在centos 6.5系统上定时运行casperjs脚本. 1.启动定时器 要实现目的,首先要可以在centos上运行定时任务,百度后知道有个cron的东西存在,所以第一步就是启动定时器服务(以 ...
- linux 定时器头文件,linux 定时器 API
内核提供给驱动许多函数来声明, 注册, 以及去除内核定时器. 下列的引用展示了基本的 代码块: #include struct timer_list { /* ... */ unsigned long ...
- 二十二、linux定时器
一.Linux 定时器介绍 在 Linux 内核中, 定时器叫做内核定时器, 内核定时器用于控制某个函数, 也就是定时器将要处理的函数在未来的某个特定的时间内执行. 内核定时器注册的处理函数只执行一次 ...
- Linux定时器函数setitimer
1.介绍 在linux下如果定时如果要求不太精确的话,使用alarm()和signal()就行了(精确到秒),但是如果想要实现精度较高的定时功能的话,就要使用setitimer函数. setitime ...
- linux驱动中probe函数是怎么调用的
linux驱动的三个概念:设备.驱动.总线 probe何时被调用:在总线上驱动和设备的名字匹配,就会调用驱动的probe函数 probe函数被调用后,系统就调用platform设备的probe函数完成 ...
- Linux系统中的函数
Linux系统中的函数: 一.进程控制 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 中止进程 _exit 立即中止当前进程 getdtables ...
最新文章
- 【Scala-spark.mlib】稠密矩阵和稀疏矩阵的创建及操作
- 使用JNDI操作LDAP(5)(转载)
- python快速入门 pdf-Python快速入门 (第3版) PDF 下载
- simpledateformat 毫秒_阿里巴巴 | 为啥代码中禁用static修饰SimpleDateFormat?
- Express + mongoDB + nodejs
- 在网页中嵌入flash之标签
- 【数据结构与算法】非森林版并查集V2.1的Java实现
- lisp文字上标源码_删除重叠文字源码 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - 源码,程序 - Powered by Discuz!...
- SPI 读取不同长度 寄存器_MCGS触摸屏如何实现批量读取modbus数据的方法?
- .native.prevent是什么意思?
- 搭建hexo个人网站小试
- python 头条视频_今日头条python视频消重赞
- JavaWeb网上图书商城
- pythonweb项目微服务_python web微服务器端
- 计算机水平毕业研究生7分落户,应届生们注意啦!只要72分就可以落户上海
- Dremel made simple with Parquet(CN)
- 【医学图像处理】CT成像技术之CT剂量
- 英文题面翻译(30)
- Xilinx HLS FFT IP核运行时动态配置FFT长度
- allegro放置器件无法放_Allegro怎么放置后台元器件?
热门文章
- java 并发编程总结
- tomcat 绑定ipv4端口
- nyoj999 师傅又被妖怪抓走了 (预处理+bfs+状态压缩)
- 【学习】程序员技术练级攻略
- powerdesigner连接db2生成模型步骤
- Facebook's New Real-time Messaging System: HBase to Store 135+ Billion Messages a Month
- 神经网路语言模型(NNLM)的理解
- C# WebBrowser触发onchange事件
- 百度编辑器在编辑视频时src丢失的问题
- Maven:Generating Project in Batch mode 卡住问题