声明
cat /dev/random
如预期的那样继续产生输出,但是
tail -f /dev/random
挂起(至少在 OSX 和 SUSE 上)。 为什么后一条语句挂起?
最佳答案
tail -f
做了几件事:
- 找到流的结尾,通过读取直到到达 EOF 或通过查找结尾(
/dev/random
上不可用的操作)。 - 备份一定长度(可能通过保留最近读取内容的适当长度的缓冲区,可能通过保留初始扫描期间最后 N 行的查找位置列表,或通过其他方式),然后打印该点和结尾之间的内容。
- 继续打印超过该点的新内容,因为此类内容可用。
如果没有尽头——如 /dev/random
的情况——那么第一步将永远不会完成。
cat
不需要找到结束点来从它返回,因此它没有关联的故障点。
关于linux - "cat/dev/random"与 "tail -f/dev/random",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658769/