問題タブ [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 投票する
1 に答える
1028 参照

ruby - シェルスクリプトでラップされた ruby​​ popen を使用する

IO.popen("command").readlines を使用してそのコマンドの STDOUT を取得する宿題の短いファイルを完成させました。ただし、Ruby ファイルをラップするシェル スクリプトを作成する必要があります。問題はありませんが、シェル スクリプトに入れると readlines がハングします。

これは動作します

これは readlines でハングアップします。ruby script.rbscript.sh に含まれるすべてです。

0 投票する
8 に答える
22486 参照

c++ - C ++ system()関数—発行されたコマンドの出力を収集する方法は?

私はC++system()関数でいくつかのコマンドを実行しています:

発行されたコマンドから標準出力を収集するにはどうすればよいですか?

具体的には、発行されたコマンドの出力(たとえば、コマンドの発行からの出力を一覧表示するディレクトリdir)を収集したいと思います。

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

c++ - popenでディレクトリにとどまる

C ++プログラムを作成したいのですが、popenここで関数を使用して、Unixのコマンドラインにコマンドを送信しています。正常に動作しますが、を呼び出しcd directoryてもディレクトリは変更されません。cd directoryスクリプトディレクトリパスの変更を終了した後、スクリプトで実行しようとした場合も同じです。. ./script.shだから、私はそうではないように実行しなければならないスクリプトですが、関数./sript.shでそれを行う方法はpopen". "の最初の引数の前に追加しようとしましpopenたが、実行". ls"するとエラーが発生します。

コード:

実行したいのはInmessage.body();です(これはから受け取っています)。たとえばの場合、実際のディレクトリ内のファイルのリストとともに返されます。しかし、メッセージがの場合、スクリプトのディレクトリを変更しようとするようなことは何も起こりません。stringXMPPstring"ls"string"cd directory"

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

linux - AF_UNIXソケット:プロセス間でソケットハンドルを渡すことはできますか?

を作成し、ソケットの1つのハンドルを生成されたプロセス( )socketpair()に渡すと、そのプロセスは親と通信できるようになりますか?popen

私が見た例はfork()、私の現在のプロジェクトの範囲外であるを使用して適用されています。

更新:簡単なテストを試しました:

  1. クライアント:socketpairソケット付き[0]

  2. コマンドライン引数としてposix_spawnソケット1を使用したクライアントの使用から

  3. クライアント:writeソケットへ...クライアントは警告なしに終了します...

この方法には問題があるように思われます。

更新: 私もこのメモを見つけました:

Pipes and socketpairs are limited to communication between processes with a common ancestor.

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

python - Pythonを使用したWindowsコンソールアプリの出力の読み取りのデバッグ

この質問はこれと非常によく似ています。私のコンソールアプリからの出力を読みたいです。アプリは終了せず、stdinからの入力も受け取りません。

rix0rrrのソリューションを変更してアプリを実行してから彼のソリューションを実行すると、read(1)が返されないため、Pythonがハングします。アプリの初期出力は「サーバーの起動です。\n」です。私のアプリが彼のソリューションの動作を妨げている可能性のあるプロパティを推測できますか?私の変更の範囲は、私がこれを変更したことです:

これに:

また、すぐに返されるアプリのテストバージョンを作成し、その場合はアプリからの出力がread()によって返されることを確認しました。彼の元の、変更されていない例も、予想どおり、ハングしません。

また、Piotrが彼の回答でリンクしているActiveStateコードを試しました。その場合も、プロセスから出力は返されません。

これはVista上のPython2.4.4です。

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

python - popenの作業ディレクトリを指定するにはどうすればよいですか

Python でコマンドの実行ディレクトリを指定する方法はありますsubprocess.Popen()か?

例えば:

私のPythonスクリプトは次の場所にありますC:\programs\python

C:\mytool\tool.exeディレクトリで実行できD:\test\localますか?

サブプロセスの作業ディレクトリを設定するにはどうすればよいですか?

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

python - プログレスバーの apt-get install の出力の解析

システムでいくつかの簡単なタスクを実行するための簡単な GUI Python スクリプトに取り組んでいます。その作業の一部には、apt-get installいくつかのパッケージのインストールが含まれます。

これが進行している間、ターミナルのapt-getのインターフェースに表示される小さなパーセンテージを使用して、ダウンロードの進行状況で更新される進行状況バーを表示したいと思います。

しかし!進捗情報を取得する方法が見つかりません。apt-get の出力をパイプまたはリダイレクトすると、各パッケージの「ダウンロードが完了しました」というメッセージを示す静的な行が表示されるだけsubprocess.Popen()で、スクリプトでの読み取りについても同じです。

ダウンロードされたファイルのパーセンテージを取得するために apt-get の出力から読み取るにはどうすればよいですか?

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

locking - popen-ロックするか、スレッドセーフではありませんか?

popen()/ pclose()の実装を見てきました。それらはすべてpidの静的リストを使用し、ロックは使用しませんでした。

またはこれ、おそらくNetBSD:

それはどのように見えるか-スレッドセーフではない実装ですか?それとも私は明らかな何かを見逃していますか?

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

haskell - Haskell の subprocess.communicate に最も近いもの

Haskell から popen() / python の subprocess.communicate を実行したい - プログラムを開始し、stdin を与え、stdout/stderr を取得します。これを行うための最も直接的/ハスケル的な方法は何ですか?