を使用するこのプログラムがあります
ioctl(file_descriptor_of_stdout, TIOCGWINSZ, &w);
端末の幅を取得します (配列の印刷で使用されます)。プログラムを端末で直接実行すると、これは正常に機能します。ただし、ページングと検索のために、出力を less にパイプすることがよくあります。議論のために、stderr もパイプ処理されていると仮定します。そのため、実際に端末に送られることを期待して「ごまかす」ことはできません。
現在、 less 自体が端末の幅を考慮しています - 行を分割したり切り落としたりするためです。この情報を何らかの方法で、パイプを介してパイプされているものにさらに伝達しませんか?