1

据我在编程中学到的,当我想将输入重定向添加到我的程序时,我编写我的程序,因为它在执行时等待用户的输入(使用std::cin或类似的东西)。但我对更少的命令感到困惑。

我们都知道我们可以这样做:

ls -la | less

但是当我们尝试执行

less

没有任何参数我们会得到一个错误。怎么来的 ?!

4

2 回答 2

4

less接受来自标准输入或文件的输入。

由于接受来自终端的输入(只是将相同的输入显示回终端)没有意义,因此less程序可能会检查 stdin 是否是终端(带有isatty)并拒绝运行。

man 3 isatty

于 2014-03-04T23:44:43.650 回答
2

Less 是一个寻呼机,一个 UNIX 术语,指的是一次显示一屏输出的程序。如果将程序的输出通过管道传输到 less,它会一次显示一页输出。如果您在命令行上传递文件名,它会逐页显示这些文件。

如果您两者都不做,则没有什么可翻页的。它会引发错误,因为它无能为力。你想让它显示什么?

于 2014-03-04T23:41:07.153 回答