問題タブ [console]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Java経由で.netコンソールを実行しているときに「ハンドルが無効です」
Java経由でドットネットコンソールアプリケーションを実行しようとしています。
次の出力が得られます。
コンソール(Windows)から直接実行する場合、問題はありません。
このフォームでさらに多くのアプリケーションを実行していますが、問題はありません。
このスタックトレースを取得しました:
問題は、.netアプリがコンソールに書き込もうとしているときです。解決策は何ですか?
問題の原因となっている行が見つかりました:
なぜなのかご存知ですか?
c - Mac の新しいターミナル ウィンドウでプロセスを開始する
WindowsではCreateProcess(..., CREATE_NEW_CONSOLE, ...)
、子プロセス(GUIではなくコンソールアプリ)が新しいウィンドウで起動されます。これを Mac OS でエミュレートする最も簡単な方法は何ですか?
c - コンソールアプリケーションは、cmd.exeの設定サイズを残します
コンソールと出力バッファのサイズを設定するコンソールアプリケーションを作成しました。私の問題は、プログラムが終了した後、以前のようにcmd.exeウィンドウのサイズを変更できないことです。プログラムがウィンドウのサイズを設定した後、後で何をしてもそのサイズを保持します。
windows - CreateProcessに呼び出しプロセスのコンソールを継承させる
WindowsでCreateProcessを呼び出すと、新しいプロセスが呼び出し元のプロセスのコンソールを継承していないようです。「rubyxtest」を実行するテストプログラムを作成しました。xtestは「hello」を標準出力に書き込むスクリプトです。このテストプログラムをEmacsから実行しましたが、出力がありません。GetStdHandleを呼び出す次のコードも試しましたが、出力がありません。次に、dwCreationFlagsのCREATE_NEW_CONSOLEをCreateProcessに渡してみました。これにより、Ruby出力でまったく新しいウィンドウが作成されました。最後に、単純なfork / execテストプログラムを作成し、CygwinのGCCを使用してコンパイルしました。このプログラムは機能しました:Rubyの出力は期待通りにEmacsに現れました。http://cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/spawn.cc?rev=1.268&content-type=text/x-cvsweb-markup&でCygwinソースコードを解読しようとしましたしかし失敗しました。では、子からの出力が期待どおりに表示されるように、新しいプロセスに親プロセスのコンソールを継承させるにはどうすればよいでしょうか。
windows-vista - Vista コンソール アプリで EndProcess イベントを処理するにはどうすればよいですか?
コンソール アプリケーションがあります。XP では、 などを受け取るコールバックを登録するために使用できSetConsoleCtrlHandler()
ます。それはうまくいきます。コールバックが呼び出されると、コールから戻る前にクリーンアップできます。問題は、Vista ではサポートされていないことです。それで?CTRL_LOGOFF_EVENT
CTRL_C_EVENT
SetConsoleCtrlHanlder()
java - GUI パネル内に Java コンソールを作成する
GUI パネル内に Java コンソールのインスタンスを作成するにはどうすればよいですか?
.net-2.0 - コンソール出力をログに記録するためにConsole.Outをリダイレクトするためのget-and-set操作のアトミック性をどのように確認できますか?
ログ用にコンソール出力ストリームをキャプチャするために、コンソール出力ストリームをインターセプトする必要がありますが、アプリケーションが正しく動作するように、元のストリームに物事を渡します。これは明らかに、元のConsole.Out
TextWriterを。で変更する前に保存することを意味しConsole.SetOut(new MyTextWriterClass(originalOut))
ます。
Outプロパティを取得し、SetOut()メソッドを呼び出す個々の操作はConsole
、スレッドセーフな方法で実装されていると思います。ただし、他のスレッド(たとえば、制御できず、変更を期待できないクライアントアプリケーションコードを実行しているため、独自のカスタムロックスキームに依存できない)ができないことを確認したいと思います。 getとsetの間に誤って変更し、変更によって上書きされてしまいます(アプリケーションの動作が壊れます!)。他のコードは単にSetOut()を呼び出す可能性があるため、私のコードは理想的にConsole
は(1つあると仮定して)内部で使用されるのと同じロックを取得する必要があります。
残念ながら、Console
これは(静的)クラスであり、インスタンスではないため、単にlock (Console)
。また、クラスのドキュメントを見ると、ロックについては何も言及されていないようです。これは、これらのコンソールメソッドの通常予想される使用法ではありませんが、アトミック操作としてこれを行うための安全な方法があるはずです。
標準のロックスキームに失敗しましたが、これを確実にする他の方法はありますか?このような短いクリティカルセクション(および1回だけ実行)の場合、それが唯一の方法である場合は、他のすべてのスレッドを一時的にブロックすることも許容される場合があります。C#と.NET2.0を使用しています。
それでも(クライアントアプリケーションを中断せずに)可能でない場合は、クライアントアプリケーションがコンソール出力をリダイレクトし、get操作とset操作の間にたまたまそれを実行する可能性が非常に低いことに依存する必要があります。万が一に備えて、すべての拠点をカバーしたいと思います。
編集:サンプルコードを使用した具体的な回答が得られたので、質問のタイトルを書き直して、回答が役立つユースケースをより一般的に反映し、より明確にしました。また、「アトミック」のタグを追加しました。
ruby - Rubyの端末でウィンドウを使用してコンソールアプリケーションを作成する方法は?
端末用の単純なチャット クライアントを Ruby で作成したいと考えています。問題は、チャットログ用と入力プロンプト用の 2 つの個別の「ウィンドウ」が必要なことです。これを行う方法がわかりません。(n)curses と他のいくつかの ruby-lib を見ましたが、この機能を提供するものは何もありません。
大きな問題は、新しい Line が到着した場合、上部フレームはスクロールする必要がありますが、プロンプトはその位置にとどまることです。また、入力プロンプトに何かを書き込むと、ユーザーが ENTER を押すとテキストが消えるはずです。
php - PHP: Eclipse コンソールへのメッセージング/ロギング?
PHP スクリプトから Eclipse のコンソールにメッセージを送信することは可能ですか? 誰かがすでにこれを試みましたか?私はコンソールの仕組みに詳しくないので、コンソールと通信するための標準化された方法があるかどうかはわかりません。