編集:私は主題から外れていることで非難されました。例として使用したファイルメソッドを編集し、現実からC++メソッドを挿入しました。
私はC++popenを使用してtopコマンドを発行し、システム情報をプログラムに取得してから、システム外に送信できるxmlファイルに取得しています。topの出力をさまざまな変数(コードの痛みを伴うビット)に解析します。これらの変数はxmlに組み込まれます。
topは、出力がパイプにリダイレクトされるバッチモードでも、画面に収まるように出力の幅を非常に便利に切り捨てます。
popen( "top -b -n 1", "r" );
出力がファイルに送信される場合も同じように機能します。
画面の右側から落ちても、すべてのフィールドを(バッチモードで)表示するようにtopに指示する方法はありますか?
注:私の特定のケースでは、ワークステーションでc ++トップパーサーを実行し、たとえば、PIDごとに15列を取得しました。次に、行の文字数を減らしました(テキストを大きくしました)。15フィールドを完全に失いました。次に、中間フォントを試し、15番目のフィールドの1列を除くすべてを元に戻しました。そのフィールドは%stで終わり、%sではなくそれを期待しています。これを修正するには、個々のケースに基づくのではなく、一般的なものにする必要があります。
助けてくれてありがとう。私はグーグルをチェックしました、そしてそれはトップについて多くを知っています、しかしただ尋ねる方法.....
注意:この現象を確認したい場合は、通常のコマンドウィンドウでtopを実行して、出力をファイルまたはパイプにキャプチャしてから、ウィンドウのフォントを変更して、ターミナルウィンドウの各行の文字数を増やし、コマンドを再実行してください。 。