首页 > 其他 > 详细

EINTR、ERESTARTSYS和SIGINT

时间:2016-06-05 09:46:40      阅读:174      评论:0      收藏:0      [点我收藏+]

1. 驱动使用down_interruptible,并在该函数返回非零值时返回-EINTR。应用程序不处理signal,使用CTRL-C退出应用程序。 

    驱动从down_interruptible返回,应用程序Terminate。

2. 驱动使用down_interruptible,并在该函数返回非零值时返回-ERESTARTSYS。应用程序不处理signal,使用CTRL-C退出应用程序。 

    驱动从down_interruptible返回,应用程序Terminate。

3. 驱动使用down_interruptible,并在该函数返回非零值时返回-EINTR。应用程序处理signal,使用CTRL-C。 

    驱动从down_interruptible返回。应用程序执行完signal处理函数后,所进行的系统调用返回负值,errno设置为EINTR。

4. 驱动使用down_interruptible,并在该函数返回非零值时返回-RESTARTSYS。应用程序处理signal,使用CTRL-C。 

    驱动从down_interruptible返回,结束当前系统调用,然后自动重新进入同一个系统调用。应用程序执行signal处理函数,并继续阻塞在系统调用中。应用程序侧看不到系统调用的重启过程。

5. 尽管man没有说ioctl会导致errno设置为EINTR,但实际上会的:这个取决于你的driver。

6. man 7 signal查看系统支持的signal和默认处理方式。

EINTR、ERESTARTSYS和SIGINT

原文:http://www.cnblogs.com/byeyear/p/5560107.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!