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

  • 相关阅读:
    Hypercall机制
    python 基础-----数字,字符串,if while 循环 数据类型的转换简单介绍
    计算机基础知识
    Proxmox初步了解
    Centos7-安装py3
    KVM-virsh常用命令
    Centos7-VNC安装
    Centos7-bond模式介绍
    KVM管理工具
    Win10-无法启动虚拟机
  • 原文地址:https://www.cnblogs.com/byeyear/p/5560107.html
Copyright © 2011-2022 走看看