EINTR
是 Linux 系统中定义的一个错误码,代表“被信号中断”。当一个系统调用在执行过程中被一个信号处理函数中断时,这个系统调用会立即返回错误,并且 errno
被设置为 EINTR
。
举个例子 read函数是阻塞的
现在没有数据要读 我们read一直阻塞在这里
当我收到一个其他信号的时候。系统就会返回EINTR
EAGAIN
在尝试读取数据时,如果当前没有数据可读,并且操作是非阻塞的,那么会返回 EAGAIN
。
在尝试写入数据时,如果缓冲区已满且操作是非阻塞的,那么会返回 EAGAIN
。
EWOULDBLOCK
和 EAGAIN
是同义的,并且它们具有相同的值。
ewouldblock eagain