【发布时间】:2013-02-05 17:54:23
【问题描述】:
我不明白 read() 系统是如何阻塞的。我创建了一个空文件并尝试使用 read() 系统调用进行读取。它返回 0。
fd = open("Demo.txt",O_RDONLY);
n = read(fd,&ch,10); // returns 0
我希望 read() 无限期地阻塞,因为文件中没有数据。 read() 是否将 EOF 视为有效数据并立即返回?我的理解正确吗?
【问题讨论】:
-
如果它没有在 EOF 返回,你怎么知道你什么时候读完了?所有从文件中读取的程序都将永远挂起。