return ERESTARTSYS 作用

原创 2011年01月16日 14:24:00

 

ERESTARTSYS is a part of the api between the driver and the 
signal-handling code in the kernel. It does not reach user-space (provided 
of course that it's used appropriately in the drivers :) 

When a driver needs to wait, and get awoken by a signal (as opposed to 
what it's really waiting for) the driver should in most cases abort the 
system call so the signal handler can be run (like, you push ctrl-c while 
running somethinig that's stuck in a wait for an interrupt). The kernel 
uses the ERESTARTSYS as a "magic" value saying it's ok to restart the 
system call automagically after the signal handling is done. The actual 
return-code is switched to EINTR if the system call could not be 
restarted. 

 

当进程在内核里,信号到来时先运行信号处理函数,接着继续运行内核程序。

驱动程序里如下这样使用:wait_event_interruptible()使进程睡眠,如果进程是被信号唤醒,则先执行信号处理函数,再接着重新执行驱动程序。

 

 28          wait_event_interruptible(wq,flag);

 29         if(signal_pending(current))

 30         {

 31                 printk(KERN_ALERT "process %s is waked by signal/n");

 32                 return -ERESTARTSYS;

 33         }

 

 

 

应用程序测试如下,利用时钟信号。

 

  8   static void sig_alrm(int signo)

  9  {

 10         printf("alrm time is over/n");

 11 }

 

 16   if(signal(SIGALRM,sig_alrm) == SIG_ERR)

 17  {

 18         printf("initial alrm clock error/n");

 19  }

 

 

js中return的用法

今天看到一篇文章,介绍的是js中return的用法,感触很深。 一、返回控制与函数结果,语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二、返回控制,...
  • gmd_web
  • gmd_web
  • 2015年12月21日 18:15
  • 15317

JS中关于onSubmit中return的作用

在写表单处理的时候,经常会用到onSubmit事件,而onSu
  • fd214333890
  • fd214333890
  • 2014年09月16日 11:48
  • 4074

关于C语言中return的总结

return、break和continue这三个关键字有一个共同点,那就是读能让后面的语句不执行,不同的地方就是挑的距离不一样。return很强大,如果一个函数中有一个return,并且执行了,那么这...
  • jhcconan614
  • jhcconan614
  • 2017年01月01日 13:36
  • 16456

关于在写linux driver时的ERESTARTSYS的作用

作用:-ERESTARTSYS的与“可重新执行的系统调用”的概念相关联,一个可重新执行的系统调用是一个当有一些中断发生后能透明的被kernel重新执行的系统调用。比如用户空间进程在执行一个系统调用时产...
  • dahailantian1
  • dahailantian1
  • 2017年11月20日 17:48
  • 20

js中return的作用及用法

转:http://www.cnblogs.com/AKI-LILI/p/6047870.html 这里面的return含有一些细节知识: 例如:onClick='return ...
  • pzasdq
  • pzasdq
  • 2017年01月05日 15:21
  • 512

return 、break和continue的区别和作用

return 、break和continue的区别和作用 1.return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语...
  • xiaomgee
  • xiaomgee
  • 2017年11月18日 17:51
  • 64

break、continue和return在编程中的作用

1、return 语句的作用       (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行       (2) return 返回一个值给调用该方法的语句,返回值...
  • yu12345678900
  • yu12345678900
  • 2014年11月16日 17:07
  • 848

learn C++ NO.1 覆盖、重载、隐藏、引用、作用域标示符、return

1、函数的覆盖 例子: class animal {        ……        virtual void breathe()        {               cou...
  • huguangshanse00
  • huguangshanse00
  • 2011年05月27日 19:43
  • 532

return返回值的作用

return 是函数返回值,返回函数运行得到的计算结果,main的返回值用于说明程序的退出状态,如果返回 0,则代表程序正常退出,否则代表程序异常退出。有些编译器在程序末尾没有return语句的时候会...
  • mpp_king
  • mpp_king
  • 2016年12月02日 13:35
  • 172

Java基础-return、break、continue在循环中的作用

return、break、continue是循环控制语句中常用的三个关键字,它们都有终止当前语句执行的作用,但又有很大的却别,以下是测试及分析结果。代码片段一:/** * 测试return在...
  • sep123
  • sep123
  • 2017年06月10日 04:07
  • 140
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:return ERESTARTSYS 作用
举报原因:
原因补充:

(最多只允许输入30个字)