我在man cat (GNU/Linux)中遇到了这一点。
手册只是简单地说了-u (ignored),没有解释为什么。
出于好奇,我在谷歌上搜索了一下,但似乎以前没有人问过这个问题。
然后我看了看cat的other implementations。
我注意到苹果的cat也实现了这个选项(参见cat.c)。在源代码中它说
...
case 'u':
setbuf(stdout, NULL);
break;
...我猜这个选项的意思是“无缓冲”。此选项的强制用法是什么?为什么它在那里,为什么它被忽略了?我认为这肯定是有原因的。
发布于 2017-02-17 00:48:41
概要
cat -u
..。
选项
..。
应支持以下选项:
当读取每个字节时,-u将字节从输入文件无延迟地写入标准输出。
这可以通过禁用输出上的缓冲来实现。
发布于 2017-02-17 00:47:17
选项-u禁用对stdout的缓冲。
GNU文档如下所示:
对标准输出使用无缓冲的I/O。如果没有此选项,Posix不会指定行为。
这可能表明cat的当前默认行为是在没有缓冲的情况下输出。
发布于 2017-02-17 00:47:32
它是适用于Unix/Linux的POSIX兼容选项。GNU cat会自动执行此操作,并且没有办法将其关闭。如果指定,它将被接受,但会被忽略,因为它对行为没有影响。
更多详细信息cat(1)
-u将输入文件中的字节写入标准输出,每次读取时都不会有延迟。
https://stackoverflow.com/questions/42279822
复制相似问题