EINTRERESTARTSYS和SIGINT

Posted 告别年代

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EINTRERESTARTSYS和SIGINT相关的知识,希望对你有一定的参考价值。

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和默认处理方式。

以上是关于EINTRERESTARTSYS和SIGINT的主要内容,如果未能解决你的问题,请参考以下文章