zoukankan      html  css  js  c++  java
  • EINTR、ERESTARTSYS和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和默认处理方式。

  • 相关阅读:
    [12/11/19] 折半&倍增思想学习笔记
    [11/07/19] CDQ学习笔记
    magic cube
    Codeforces Round #514 (Div. 2) B
    Codeforces Round #514 (Div. 2) C. Sequence Transformation
    八位数
    hdu3001Travelling
    Codeforces Round #512 E
    Codeforces Round #512 (Div. 2) D. Vasya and Triangle
    codeforces 1042 e
  • 原文地址:https://www.cnblogs.com/byeyear/p/5560107.html
Copyright © 2011-2022 走看看