对于普通文件:
在阻塞模式下,如果缓冲区为空,read函数会阻塞当前线程,直到又数据可读才会返回读取到的字节数。如果已经到达文件结尾,无论文件描述符是阻塞还是非阻塞,read的返回值是。
对于读管道或者套接字:
默认情况下,它们的缓冲区read操作是阻塞的。
如果缓冲区为空切文件描述符是阻塞模式,read函数会阻塞等待有数据再进行读取。
如果缓冲区为空且文件描述符被设置为非阻塞模式,read函数会立即返回-,并设置errno为EAGAIN(表示"再试一次" 或 "资源暂时不可用")。