2017-06-30 9 views
0

サブプロセスやプロセスを呼び出すPythonツールに問題があります。私のELFは、Pythonコードと同じフォルダにある私のPCに座っています。 ELFは入力、出力、入力、出力のように動作します:40回のように、私はプログラムの入力にデータを送る必要があります。最初は私はパイプで試しました:python -c 'print "0 0xdeadbeef hello 5"*40'| ./elfしかし、エルフは狂ったし、私のPCが動作を停止させた。 elfが3つのオプション[0/1/2]からの入力を待つとき、私は0を選択し、elfよりも文字列、別の文字列およびintを要求します。その後、エルフは再びオプションメニューに戻ります。私はを40回実行する必要があります。次に、のために2を送信する必要があります。実際には、python -c 'print "0 0xdeadbeef hello 5"*40 +"2"'| ./elfが必要ですが、最初のコマンドは機能しませんそれはうまく動作しません。 'シェルリングソリューション'を試した後、私は自分のコードからelfを実行するためにサブプロセスライブラリを使用しようとしましたが、うまく機能せず、通信機能とstdoutへの書き込みを試みましたが、エルフの印刷を表示して、私が送信しているものが入力に向いているかどうかを知ることさえできません。また、誰も私のために働いていないので、私はコール関数を試した。 コード: import subprocess p=subprocess.Popen(['./elf'],stdin=subprocess.PIPE,stdout=subprocess.PIPE) out = p.communicate(input='0') #not responding p.stdin.write('0\n')を試してみましたが、その後、PythonコードからELFを呼び出す

おかげで、あなたのすべてをその標準出力から読み取るませんが、まだ返事!

答えて

0

python -c 'print "0 0xdeadbeef hello 5"*40

それはあなたがこれを生成するために期待する正確なものを出力明らかではありません。

0 0xdeadbeef hello 50 0xdeadbeef hello 50 0xdeadbeef hello 50 0xdeadbeef ... 

おそらく何かご./elfを期待していないか、正しく処理:あなたは

0 0xdeadbeef hello 5 
0 0xdeadbeef hello 5 
... 

しかし、これは実際に生産することであるようなものを期待しと思い

あなたが本当に後者前者とされていない場合は、試してみてください。

python -c 'print "0 0xdeadbeef hello 5\n"*40 +"2"'| ./elf 
関連する問題