码迷,mamicode.com
首页 > 其他好文 > 详细

EINTR、ERESTARTSYS和SIGINT

时间:2016-06-05 09:49:35      阅读:365      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!