管道.FIFO以及某些设备,特别是终端.网络和STREAMS设备有下列两种性质: (1)一次read操作所返回的数据可能少于所要求的数据,即使还没有达到文件尾端也可能是这样.这不是一个错误,应当继续读该设备. (2)一次write操作的返回值也可能少于指定输出的字节数.这可能是由若干因素造成的,例如,下游模块的流量控制限制.这也不是错误,应当继续写余下的数据至该设备.(通常,只有对非阻塞描述符,或捕捉到一个信号时,才发生这种write的中途返回.) 在读.写磁盘文件时从未见到过这种情况,除非文件…