“less”命令如何获取标准输入?

bab*_*l92 6 linux bash shell pipe less-unix

我只是想知道这个问题:如果我可以使用“ls -al | less”之类的东西,那么 less 应该能够等待来自标准输入的输入。我期望发生的是运行“less”命令后,程序挂起并等待输入(由于调用 gets() 或类似的东西。)

但为什么实际上它显示错误消息“缺少文件名(“less --help”寻求帮助)”结束退出?

谢谢。

kev*_*kev 4

less命令可以检查两者argc>1stdin与文件(不是 tty)关联。

  • 我们 C/Unix 的老前辈还记得在收到错误和尝试将 errno 转换为消息之间执行 printf 的菜鸟错误,因为 printf 会执行一个调用来确定是否应该进行行缓冲,所以所有的 errno会告诉你是“ENOTTY”(不是 TTY)。 (3认同)