を実行すると、cat
端末はstdinの入力を待って停止します。しかしless
、投稿されたとき、私はそれを得ましたMissing filename ("less --help" for help)
。私たちは皆知っているように、less
標準入力入力の両方をcat
許可します。違いは何ですか?これはマニュアルページにどのように反映されますか?
ベストアンサー1
less
ファイル名引数が指定されていない場合は、次のコードが実行されます。
if (isatty(fd0))
{
error("Missing filename (\"less --help\" for help)", NULL_PARG);
quit(QUIT_OK);
}
return (edit("-"));
標準入力が端末の場合は文句を言います。標準入力が通常のファイルやパイプであれば大丈夫です。
おそらく、各ページの終わりに端末の応答を読み取る必要があり、ページングされているデータと応答を区別できないため、これを行うようです。
マニュアルページにはこれに対する言及はありません。おそらくそうすべきでしょう。
cat
出力をページングせず、端末から応答を読み取ることもありません。 stdin この端末に関する限り、制限はありません。