编辑:我因偏离主题而受到惩罚。我编辑了我用作示例的文件方法,并从现实中插入了 C++ 方法。
我正在使用 C++ popen 发出一个top命令来将系统信息输入我的程序,然后输入一个我可以发送到系统外的 xml 文件。我将 top 的输出解析为各种变量(痛苦的代码),这些变量被输入到 xml 中。
top非常有用地截断它的输出宽度以适应屏幕,即使在输出被重定向到管道的批处理模式下也是如此。
popen( "top -b -n 1", "r" );
如果将输出发送到文件,则工作方式相同。
有没有办法告诉 top 显示其所有字段(以批处理模式),即使它们会从屏幕右侧掉下来?
注意:在我的特殊情况下,我在我的工作站上运行了我的 c++ 顶级解析器,并且得到了,比如说,每个 PID 15 列。然后我在行中更改为更少的字符(更大的文本)。我完全失去了第 15 场。然后我尝试了一种中间字体,除了第 15 字段的一列之外,其他所有内容都返回了。该字段以 %st 结尾,我指望它这么说,而不是 %s。解决这个问题需要是通用的,而不是基于个别情况。
谢谢您的帮助。我查了谷歌,它知道很多关于顶级的信息,但只是如何问......
注意:如果您想看到这种现象,请在通常的命令窗口中运行 top 将输出捕获到文件或管道,然后更改窗口中的字体以在终端窗口的每一行中包含更多字符并重新运行命令.