2

編集:私は主題から外れていることで非難されました。例として使用したファイルメソッドを編集し、現実からC++メソッドを挿入しました。

私はC++popenを使用してtopコマンドを発行し、システム情報をプログラムに取得してから、システム外に送信できるxmlファイルに取得しています。topの出力をさまざまな変数(コードの痛みを伴うビット)に解析します。これらの変数はxmlに組み込まれます。

topは、出力がパイプにリダイレクトされるバッチモードでも、画面に収まるように出力の幅を非常に便利に切り捨てます。

popen( "top -b -n 1", "r" ); 

出力がファイルに送信される場合も同じように機能します。

画面の右側から落ちても、すべてのフィールドを(バッチモードで)表示するようにtopに指示する方法はありますか?

注:私の特定のケースでは、ワークステーションでc ++トップパーサーを実行し、たとえば、PIDごとに15列を取得しました。次に、行の文字数を減らしました(テキストを大きくしました)。15フィールドを完全に失いました。次に、中間フォントを試し、15番目のフィールドの1列を除くすべてを元に戻しました。そのフィールドは%stで終わり、%sではなくそれを期待しています。これを修正するには、個々のケースに基づくのではなく、一般的なものにする必要があります。

助けてくれてありがとう。私はグーグルをチェックしました、そしてそれはトップについて多くを知っています、しかしただ尋ねる方法.....

注意:この現象を確認したい場合は、通常のコマンドウィンドウでtopを実行して、出力をファイルまたはパイプにキャプチャしてから、ウィンドウのフォントを変更して、ターミナルウィンドウの各行の文字数を増やし、コマンドを再実行してください。 。

4

1 に答える 1

3

COLUMNS環境変数を設定してみてください:

$ COLUMNS=10000 top
于 2012-07-26T12:57:47.300 に答える