如何确定pipe道时的terminal宽度(对于较less的寻呼机?)

如果我的程序正在通过命令行连接到另一个程序,有什么办法可以确定它的宽度吗?

我正在Node中工作,如果这是相关的,虽然任何普通的POSIX解决scheme是受欢迎的(我可以弄清楚如何将它移植到我自己的环境。)目前,我可以在Node中使用process.stdout.columns ; 但是这与process.stdout ,在这种情况下,它是通过pipe道连接的。

实际上,POSIX没有定义用于获取窗口大小的C ioctl调用(请参阅标准 )。 但TIOCGWINSZ电话(或类似的TIOCGSIZE )是广泛可用的。 节点可能依赖于它的检查。

这个软件包检查标准输出的宽度并且失败,检查标准错误: window-size (见源代码 )。

在node.js控制台有多宽之前,有人问过类似的问题