タグ

ブックマーク / t2y.hatenablog.jp (1)

  • subprocess モジュールでパイプによる入出力を扱うときの注意事項 - forest book

    Python 2.4 から OS のコマンドを実行したり、それらの標準入出力/エラー出力のやり取りをするのに subprocess モジュールが追加されています。commands モジュールの置き換えとして使用していたところ、あるコマンドの標準出力を受けとる処理がデッドロックする問題に遭遇しました。 subprocess モジュールの Popen クラスに stdout=subprocess.PIPE を指定してその標準出力に 65536 バイトより大きい出力が返される、且つ実行したコマンド(子プロセス)の終了を待つ場合に発生します。実際にその問題を再現させて確認してみます。 引数で指定された数の文字列を返すプログラムを作成します。 #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int i,

    subprocess モジュールでパイプによる入出力を扱うときの注意事項 - forest book
    atty
    atty 2010/04/09
    いつかハマる予感がするので今のうちに
  • 1