linux socket问题

来源:互联网 发布:mobi域名2017最新消息 编辑:程序博客网 时间:2024/05/20 18:00

信号与系统调用的关系(可被信号中断的系统调用函数)

当一个进程正在执行一个系统调用时,如果向该进程发送一个信号,那么对于大多数

系统调用来说,这个信号在系统调用完成之前将不起作用,因为这些系统调用不能被信号

打断。但是有少数几个系统调用能被信号打断,例如:wait(),pause()以及对慢速设备(终端、

打印机等)的read()、write()、open()等。如果一个系统调用被打断,它就返回-1,并将errno

设为EINTR。可以用下列代码来处理这种情况:

if (wirte(tfd,buf,SIZE)<0) {

if (errno==EINTR) {

warn(“Write interrupted.”);

}

}

原创粉丝点击