"main"スレッドの中のいくつかの変数を監視して表示することを目的としたスレッドを作成するとします。しかし、 "main"も出力を生成しているので、これら2つのスレッドの出力を別々に出力したいと考えています。私のcプログラムで使用している「メイン」スレッド以外の新しいコンソールに、新しいスレッドの出力をどのようにリダイレクトできますか?を新しい端末に出力する
答えて
このような場合(外部)に何が起こると思いますか?
プログラムを実行すると、コンソールに接続されます。もちろん、コンソールに出力を書き込む必要はありませんが(ファイルを使用できます)、コンソールを明示的に複製することはできません。
別のファイル記述子を使用していないのですか?
基本的に私は2つのスレッドを持っています.1つはサーバーともう1つのクライアントとして機能します。また、両方のコンソールのステータスをリアルタイムで監視したいと考えています。両方の出力を同じコンソールに出力すると、それらはインターリーブされ、あまり読みにくくなりません。だから私は、私のCプログラムでは、サーバー用とクライアント用の2つの異なるコンソールに出力する方法があるのだろうかと思います。 – sinoTrinity
@sino私はもっと明確にすべきだったと思う。いいえ、できません。また、システム上で何が起こるでしょうか?コンソールがSSH経由で開かれている場合、または旧式の物理モニターである場合はどうなりますか?繰り返しますが、別のファイル記述子に書き込むのはなぜですか? –
両方の出力をREAL-TIMEで表示したいからです。私がファイルに書き込むと、時々更新するために "tail -f"のようなものを入力しなければならないかもしれません。 – sinoTrinity
ファイルに監視情報を出力し、tail -f filename
を使用して他の端末に表示します。
これは、grep
またはwhat-have-youを出力することができるという利点があります。
私は時々「tail -f」のようなものを入力しなければならないかもしれません。コンソール経由でファイルの内容を動的に監視する方法はありますか?つまり、何かがファイルに追加された場合、コンソールは自動的にスクロールし、新しく追加されたものを "printf()"のように表示します。 – sinoTrinity
@sinoあなたは 'tail -f'が何をしているかを説明しました。 –
ログファイルにデータを書き込んだ後、別のウィンドウからtail -f log_file.txt
を使用してデータのコピーを保持するようにしていますが、別の端末を使用する必要がある場合は通常のファイルのように新しい端末(tty)を開くことができます。これの主な問題は、あなたが本当にそれがあなたのために新しい端末ウィンドウを開くことを本当に望んでいるということです。
このようなことを行うために新しい端末ウィンドウを開くのは難しく、端末エミュレータによって異なります。 Hereは、makeファイルから新しい端末を開くことについてのもう一つの質問です。プログラムから同じことをやって、プログラムを実行しているスクリプトから同じことを試して、新しい端末にcat
またはtail
を実行してログウィンドウにすることができます。
#!/bin/sh
truncate --size=0 ./logfile.txt
xterm "tail -f ./logfile.txt" 2>&1 > /dev/null &
your_program --log-file=./logfile.txt
私は現在、これを達成するためのよりよい方法を知らない。
もう1つの見たいものはsyslog
です。
- 1. Pythonプログラムを端末に入力して端末から出力する方法
- 2. 私とは異なる端末への出力出力をファイルにリダイレクトし、端末に出力
- 3. 端末にpython os.urandomを出力する
- 4. 配管コマンドに出力し、端末
- 5. Java捕捉端末出力
- 6. Python端末の出力幅
- 7. Linux端末の出力リダイレクト
- 8. artisan serveを実行している端末にログを出力
- 9. Knitr:チャンクコード出力を端末にリダイレクト
- 10. C++端末の出力が新しい行を生成しない
- 11. コマンド出力がファイルと端末にリダイレクト
- 12. 端末に出力する場合はCで検出する
- 13. カラーコードなしで端末出力をファイルにリダイレクトする方法
- 14. gnuplot端末に入力しない
- 15. Javaで端末に出力されたテーブルのセルを更新する
- 16. 端末の出力/入力を解析する方法は? (.bashrc?)
- 17. PythonでのMATLABスタイルの端末出力
- 18. visualstudio code出力用C++端末
- 19. Jenkins - 複数の端末出力
- 20. テスト中に端末にerror_log()メッセージを出力しないようにする
- 21. bash、以前のように端末出力をリセットします。
- 22. xcodeコンソール出力を端末9.1に変更します
- 23. 端末のコマンド出力から1行を抽出する
- 24. 端末の出力を参照してください
- 25. なぜexeclp()の出力が端末に出力されないのですか?
- 26. 端末(ubuntu)にlog4j日付を出力する際の問題
- 27. Pythonプログラムに端末出力データを取得する方法は?
- 28. PythonプログラムからMacの端末にデータを出力する
- 29. sshログイン中にPythonが端末に出力する
- 30. 端末に分岐名を表示する - 予期しない出力
これはどのオペレーティングシステムで実行されていますか? –
Fedoraオペレーティングシステム – sinoTrinity
Nitpick:fedoraはオペレーティングシステムではありません。それは流通だ。 – Falmarri