在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函数的使用和总结相关推荐

  1. linux less 带颜色,less中color函数字体颜色计算

    LESS 提供了一系列的颜色运算函数. 颜色会先被转化成 HSL 色彩空间, 然后在通道级别操作: lighten(@color, 10%); // return a color which is 1 ...

  2. linux定时器错误使用,linux下定时器的使用

    Linux下定时器的使用主要用到两个函数:setitimer()和getitimer(); 注意:setitimer()一个进程中只能有一个,下一个会覆盖前一个的定时. Linux系统给每个进程提供了 ...

  3. linux 定时器_通过linux源码分析nodejs的keep-alive

    之前已经分析过了keep-alive,最近在使用nodejs的keep-alive的时候发现了遗漏了一个内容.本文进行一个补充说明.我们先看一下nodejs中keep-alive的使用. enable ...

  4. linux定时器跑命令,linux下运行定时器(cron/centos/js脚本)

    目的:在centos 6.5系统上定时运行casperjs脚本. 1.启动定时器 要实现目的,首先要可以在centos上运行定时任务,百度后知道有个cron的东西存在,所以第一步就是启动定时器服务(以 ...

  5. linux 定时器头文件,linux 定时器 API

    内核提供给驱动许多函数来声明, 注册, 以及去除内核定时器. 下列的引用展示了基本的 代码块: #include struct timer_list { /* ... */ unsigned long ...

  6. 二十二、linux定时器

    一.Linux 定时器介绍 在 Linux 内核中, 定时器叫做内核定时器, 内核定时器用于控制某个函数, 也就是定时器将要处理的函数在未来的某个特定的时间内执行. 内核定时器注册的处理函数只执行一次 ...

  7. Linux定时器函数setitimer

    1.介绍 在linux下如果定时如果要求不太精确的话,使用alarm()和signal()就行了(精确到秒),但是如果想要实现精度较高的定时功能的话,就要使用setitimer函数. setitime ...

  8. linux驱动中probe函数是怎么调用的

    linux驱动的三个概念:设备.驱动.总线 probe何时被调用:在总线上驱动和设备的名字匹配,就会调用驱动的probe函数 probe函数被调用后,系统就调用platform设备的probe函数完成 ...

  9. Linux系统中的函数

    Linux系统中的函数: 一.进程控制 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 中止进程 _exit 立即中止当前进程 getdtables ...

最新文章

  1. 【Scala-spark.mlib】稠密矩阵和稀疏矩阵的创建及操作
  2. 使用JNDI操作LDAP(5)(转载)
  3. python快速入门 pdf-Python快速入门 (第3版) PDF 下载
  4. simpledateformat 毫秒_阿里巴巴 | 为啥代码中禁用static修饰SimpleDateFormat?
  5. Express + mongoDB + nodejs
  6. 在网页中嵌入flash之标签
  7. 【数据结构与算法】非森林版并查集V2.1的Java实现
  8. lisp文字上标源码_删除重叠文字源码 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - 源码,程序 - Powered by Discuz!...
  9. SPI 读取不同长度 寄存器_MCGS触摸屏如何实现批量读取modbus数据的方法?
  10. .native.prevent是什么意思?
  11. 搭建hexo个人网站小试
  12. python 头条视频_今日头条python视频消重赞
  13. JavaWeb网上图书商城
  14. pythonweb项目微服务_python web微服务器端
  15. 计算机水平毕业研究生7分落户,应届生们注意啦!只要72分就可以落户上海
  16. Dremel made simple with Parquet(CN)
  17. 【医学图像处理】CT成像技术之CT剂量
  18. 英文题面翻译(30)
  19. Xilinx HLS FFT IP核运行时动态配置FFT长度
  20. allegro放置器件无法放_Allegro怎么放置后台元器件?

热门文章

  1. java 并发编程总结
  2. tomcat 绑定ipv4端口
  3. nyoj999 师傅又被妖怪抓走了 (预处理+bfs+状态压缩)
  4. 【学习】程序员技术练级攻略
  5. powerdesigner连接db2生成模型步骤
  6. Facebook's New Real-time Messaging System: HBase to Store 135+ Billion Messages a Month
  7. 神经网路语言模型(NNLM)的理解
  8. C# WebBrowser触发onchange事件
  9. 百度编辑器在编辑视频时src丢失的问题
  10. Maven:Generating Project in Batch mode 卡住问题