GNU/Linux编程指南中第二部分中读取文件信息的程序中包含代码:
if((fd=open(args[1], O_RDONLY))<0){
perror("open");
exit(EXIT_FAILURE);
}
但事实上,如果输入文件为管道文件,程序会被阻塞。要添加O_NONBLOCK参数。即:
if((fd=open(args[1], O_RDONLY|O_NONBLOCK))<0){
perror("open");
exit(EXIT_FAILURE);
}
本文介绍了GNU/Linux编程指南中关于读取文件信息程序的改进方法。当输入文件为管道文件时,原始程序会阻塞。为了防止这种情况,需要在打开文件时添加O_NONBLOCK标志。

被折叠的 条评论
为什么被折叠?



