SIGIO

在TCP 连接中, SIGIO 信号将会在这个时候产生:
l 在一个监听某个端口的套接字上成功的建立了一个新连接。
l 一个断线的请求被成功的初始化。
l 一个断线的请求成功的结束。
l 套接字的某一个通道(发送通道或是接收通道)被关闭。
l 套接字接收到新数据。
l 套接字将数据发送出去。
l 发生了一个异步I/O 的错误。
举例来说,如果一个正在进行读写操作的TCP 套接字处于信号驱动I/O 状态下,那么
每当新数据到达本地的时候,将会产生一个SIGIO 信号,每当本地套接字发出的数据被远
程确认后,也会产生一个SIGIO 信号。对于我们的程序来讲,是无法区分这两个SIGIO 有
什么区别的。在这种情况下使用SIGIO,TCP 套接字应当被设置为无阻塞模式来阻止一个
阻塞的read 和write(recv 和send)操作。我们可以考虑在一个只进行监听网络连接操作
的套接字上使用异步I/O,这样当有一个新的连接的时候,SIGIO 信号将会产生。



符号名 信号值 描述 是否符合POSIX
SIGHUP 1 在控制终端上检测到挂断或控制线程死 亡 是
SIGINT 2 交互注意信号 是
SIGQUIT 3 交 互中止信号 是
SIGILL 4 检测到非法硬件的指令 是
SIGTRAP 5 从 陷阱中回朔 否
SIGABRT 6 异常终止信号 是
SIGEMT 7 EMT 指令 否
SIGFPE 8 不正确的算术操作信号 是
SIGKILL 9 终 止信号 是
SIGBUS 10 总线错误 否
SIGSEGV 11 检 测到非法的内存调用 是
SIGSYS 12 系统call的错误 参数 否
SIGPIPE 13 在无读者的管道上写 是
SIGALRM 14 报 时信号 是
SIGTERM 15 终止信号 是
SIGURG 16 IO 信道紧急信号 否
SIGSTOP 17 暂停信号 是
SIGTSTP 18 交 互暂停信号 是
SIGCONT 19 如果暂停则继续 是
SIGCHLD 20 子 线程终止或暂停 是
SIGTTIN 21 后台线程组一成员试图 从控制终端上读出 是
SIGTTOU 22 后台线程组的成员试 图写到控制终端上 是
SIGIO 23 允许I/O信号 否
SIGXCPU 24 超 出CPU时限 否
SIGXFSZ 25 超出文件大小限制 否
SIGVTALRM 26 虚 时间警报器 否
SIGPROF 27 侧面时间警报器 否
SIGWINCH 28 窗 口大小的更改 否
SIGINFO 29 消息请求 否
SIGUSR1 30 保 留作为用户自定义的信号1 是
SIGUSR2 31 保留作为用 户自定义的信号 是



Category linux