我正在使用C ++ popen发出 top 命令以将系统信息输入到我的程序中,然后发送到我可以发送到系统外的xml文件中。我将top的输出解析为各种变量(痛苦的代码),这些变量被加入到xml中。
top 非常有用地截断它的输出宽度以适应屏幕,即使在批处理模式下输出被重定向到管道。
popen( "top -b -n 1", "r" );
如果将输出发送到文件,则工作相同。
有没有办法告诉top显示其所有字段(在批处理模式下),即使它们会从屏幕的右侧掉下来?
注意:在我的特定情况下,我在我的工作站上运行了我的c ++顶级解析器,并且每个PID得到15个列。然后我改为更少的字符(更大的文字)。我完全失去了第15场。然后我尝试了一个中间字体,然后得到了第15个字段中除了一列以外的所有字体。该字段以%st结尾,我指望它,而不是%s。修复这个需要是通用的,而不是基于个别情况。
感谢您的帮助。我查了一下谷歌,它知道很多关于顶部,但是如何问..... [/ p>
注意:如果您想看到这种现象,请在通常的命令窗口中运行顶部捕获输出到文件或管道,然后更改窗口中的字体以在终端窗口的每一行上包含更多字符重新运行命令。
答案 0 :(得分:3)
尝试设置COLUMNS
环境变量:
$ COLUMNS=10000 top