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的更多相关文章

  1. linux signal 处理

    v/:* {behavior:url(#default#VML);} o/:* {behavior:url(#default#VML);} w/:* {behavior:url(#default#VM ...

  2. Linux企业级开发技术(4)——epoll企业级开发之epoll例程

    为了使大家更加深入了解epoll模型在企业应用中的使用,下面给出一段基于epoll的服务器代码,并在代码中添加了详细注释: #include <deque> #include <ma ...

  3. epoll完整例子

    #include <deque> #include <map> #include <vector> #include <pthread.h> #incl ...

  4. EINTR与ERESTARTSYS

    驱动中如果down_interruptible之类的函数被信号中断,驱动可以返回-EINTR或-ERESTARTSYS. 区别在于: 若返回-EINTR,应用程序执行的系统调用会返回表示错误的值,且e ...

  5. Linux编程下EAGAIN和EINTR宏的含义及处理

    Linux中的EAGAIN含义   在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中). linux下使用write\send ...

  6. 【网络编程】——connect函数遇见EINTR的处理

    最近在公司项目中突然报错如下 “connect: Interrupted system call”, 经过查找代码发现是在创建 socket 中执行了 connect 函数失败导致.上网查阅资料发现这 ...

  7. EINTR错误

    慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用.永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类.如:若没有客户连接到服务器上,那么服 ...

  8. 简单回射程序之处理accept返回EINTR错误的服务器程序版本

    #include <stdio.h> #include <stdlib.h> #include <time.h> #include <errno.h> ...

  9. SIGTERM、SIGKILL、SIGINT和SIGQUIT的区别

    转自:http://blog.csdn.net/dai_xiangjun/article/details/41871647 SIGQUIT 在POSIX兼容的平台,SIGQUIT是其控制终端发送到进程 ...

随机推荐

  1. Java 内部类和匿名类 实现JButton动作 ActionListener类

    import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ControlCircle2 extend ...

  2. How to use liftover

    First step, installation: download from UCSC genome browser chmod + x Second, very important: to dow ...

  3. editplus 替换换行 excel 表格 拼装sql语句技巧

    这样的数据 放到sql中的in 语句中的时候格式需要换行  加上‘,’这样的内容. 操作内容: 用editplus 进行操作.Ctrl+H    查找的地方输入 \n  ,替换的地方填写 ','   ...

  4. 图像处理之face morphing

    以前在论坛.微博经常看到一张脸,五官长得像A,脸型似乎又是B,觉得很有意思. 比如像这张图片.这张图片应该是网友用Photoshop完成的,他们取了郭大爷的五官,放在金元帅的脸上,在把边缘处理平滑. ...

  5. WindowsServer问题总结

    1.System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志.不可访问的日志: Security.在安装的“回滚”阶段发生异常.将忽略该异常并继续回 ...

  6. leetcode 107 Binary Tree Level Order Traversal II ----- java

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...

  7. JavaScript学习记录总结(四)——js函数的特殊性

    <script type="text/javascript">  //当局部变量与全局变量 重名的时候   var v="全局变量";//定义全局变 ...

  8. Vigenère 密码NOIP 2012 提高组 第一天 第一题

    题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...

  9. UVa 489 HangmanJudge --- 水题

    UVa 489 题目大意:计算机给定一个单词让你猜,你猜一个字母,若单词中存在你猜测的字母,则会显示出来,否则算出错, 你最多只能出错7次(第6次错还能继续猜,第7次错就算你失败),另注意猜一个已经猜 ...

  10. 针对主流浏览器的CSS-HACK写法及IE常用条件注释

    一.通用区分方式: IE6.IE7能识别*,标准浏览器(如FF)不能识别*:IE6能识别*,但不能识别 !important:IE7能识别*,也能识别 !important:IE8能识别\0,不能识别 ...