問題タブ [popen]

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.

0 投票する
2 に答える
349 参照

windows - IO.popenなどを使用するとDOSウィンドウがポップアップする

私はWindowsXP用のGUIに取り組んでいます。%x()バッククォート、、などを介して外部コマンドを実行すると、一瞬IO.popenポップアップするDOSウィンドウが表示されることを除いて、すべてがうまく機能します。私がOSXとLinuxで開発したとき、これは起こらないことを私は知っています。それを取り除く方法について何かアイデアはありますか?(または少なくともそれを隠す?)

インターフェイスにはrubyw1.8.6(Ruby for Windowsの「GUIバージョン」)とGTK2を使用しています。

0 投票する
5 に答える
11302 参照

python - Python - Popen stdout をキャプチャしてコンソールに表示しますか?

経由で開始された実行中の長いプロセスからstdoutをキャプチャしたいので、引数としてsubprocess.Popen(...)使用しています。stdout=PIPE

ただし、これは長時間実行されるプロセスであるため、出力をコンソールに送信して (パイプ処理していないかのように)、スクリプトがまだ機能していることをスクリプトのユーザーに知らせたいと考えています。

これはまったく可能ですか?

乾杯。

0 投票する
3 に答える
1565 参照

winapi - 非表示の使い捨てコンソール アプリケーションを作成して通信するにはどうすればよいですか?

問題のあるサードパーティの DLL をラップする小さなコンソール アプリケーションを作成しました。_popenを使用して GUI アプリケーションから呼び出しており、コンソール プログラムの標準出力から値を読み取りたいだけです。その際、望ましくないコンソール ウィンドウが短時間表示されます。

これは、CreateProcess で特定の STARTUPINFO 構成を使用することで回避できることを認識しています。ただし、コンソール アプリケーションに修正を加えて、引き続き _popen を使用したいと考えています。Windows サブシステム (メインではなく WinMain) を使用して子プロセスを作成しても、コンソール ウィンドウは消えません。どうやら、_popen 通信を容易にするために、オペレーティング システムによってコンソールが割り当てられているようです。

サードパーティの DLL は不安定ですが、独自のハードウェアとのインターフェイスに必要であることに注意してください。したがって、DLL を GUI アプリケーションのメモリ空間にロードする方法は受け入れられません。

0 投票する
1 に答える
1181 参照

c - 単一の popen された FILE の SIGPIPE を無視します*

私が見ているコードはここにあります:

http://github.com/andymatuschak/Sparkle/blob/8ea15468b4a8c0487ca7a72f3c9e6ffb708c6af8/SUPipedUnarchiver.m

Sparkle はプラグインのようなものです。マルチスレッドプログラムでインスタンス化できます。したがって、他のスレッドが何を行っているか/期待しているかを誰が知っているかとして、signal(SIGPIPE, SIG_IGN) (つまり、すべてのSIGPIPE を無視する) を呼び出したくありません。

popen を介して開かれたこの 1 つの FILE ポインターの SIGPIPE シグナルを無効にするにはどうすればよいですか?

0 投票する
1 に答える
2358 参照

ssh - 「ssh」の popen() で fgets() を呼び出すと、呼び出しプロセスの stdin の先頭がフラッシュされます (ptty 問題)

私はこれを最小限のテストケースに落とし込みました。これまでのところ、これは ssh のパイプで発生する疑似端末に関連する問題であると判断できました。'-t -t' を ssh 呼び出しに追加すると、問題が発生するために fgets() への 2 回目の呼び出しが必要になるという点で改善されました。sshコマンドのstderr出力が何らかの形で問題に関与していると思われます。今のところ、実行するsshコードでstderrをstdoutにリダイレクトしました。「tcgetattr: Invalid argument」エラーが問題の一部であるかどうかは疑問ですが、それを取り除く方法がわかりません。-t -t が存在することから来ているようです。-t -t は正しい方向に進んでいると思いますが、何らかの方法で stderr の疑似端末をセットアップする必要があり、おそらくテストは適切に機能しますか?

メイクファイル:

test.c ソース ファイル:

これは、通過する方法を実行していることを示しています。

これは、失敗した方法で実行されていることを示しています。

0 投票する
4 に答える
95328 参照

python - subprocess.Popen() から出力を取得する方法。proc.stdout.readline() がブロックされ、データが出力されない

Test_Pipe.py の実行からの出力が必要です。Linux で次のコードを試しましたが、うまくいきませんでした。

Test_Pipe.py

Caller.py

回線proc.stdout.readline()がブロックされているため、データは出力されません。

0 投票する
2 に答える
1094 参照

python - Python2.5以下でシェルを使用せずに実行可能なプロセスを作成する

タイトルの内容:

  1. subprocessモジュールは2.4および2.5で動作するため、使用できません。
  2. 引数を渡すためにシェルプロセスを生成しないでください。

(2)を説明するために、次のコードを検討してください。

ご覧のとおり、システムシェル( "sh")を介して、指定されたコマンド( "foo")を表示os.systemして実行します。os.popen私はこれが起こらないようにしたいです(そうでなければ、醜い「見つかりません」メッセージが私の制御なしでプログラムstderrに出力されます)。

最後に、このプログラムに引数を渡すことができるはずです(上記の例では「arg」)。

Python 2.5および2.4でこれを行うにはどうすればよいですか?

0 投票する
2 に答える
4953 参照

python - Python 2 で文字列を subprocess.Popen に渡すにはどうすればよいですか?

を使用して Python (2.4/2.5/2.6) からプロセスを実行したいのですがPopen、標準入力として文字列を渡したいと思います。

プロセスがその入力に対して「head -n 1」を実行する例を書きます。

以下は機能しますが、を使用せずに、より良い方法で解決したいと思い echoます。

を使用しようとしましStringIOたが、機能しません:

一時ファイルを作成してそこに文字列を書き込むこともできると思いますが、それもあまり良くありません。

0 投票する
1 に答える
2844 参照

python - Python subprocess.Popen - GCC フラグを追加すると「入力ファイルがありません」というエラーが発生する

subprocess.Popen を使用して GCC を呼び出すビルド プロセスを自動化する Python スクリプトを作成しています。私の最初の試みはうまくいきます。

ただし、追加のオプションを GCC に渡すと、以下に示すように「入力ファイルがありません」というエラーが表示されます。

この問題を引き起こしている可能性のあるアイデアはありますか?

0 投票する
5 に答える
5932 参照

c++ - C/C++でWindowsの下でスペースを含むパス名でpopen()を呼び出す方法は?

次のように mingw を使用して popen() を呼び出そうとしています:

しかし、私はそれを機能させることができません。引用の悪夢だと思います...