問題タブ [unbuffered]
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.
python - Python Unbuffered モードが Windows で問題を引き起こす
以下を実行してから、対話型コマンドを実行しようとすると失敗します...
より単純なテストも失敗します。
Python 2.6.6 (r266:84297, Aug 24 2010, 18:13:38) [MSC v.1500 64 bit (AMD64)] on win32
Windows 7で 使用しています。
python - Pythonの標準入力からのバッファなし読み取り
次のように、別のコマンドからパイプを介して入力を読み取ることができるpythonスクリプトを作成しています
私のスクリプトは、独自の stdoutmyparser
の出力と書き込みを処理します。batch_job
私の問題は、出力をすぐに見たいことです (batch_job の出力は行ごとに処理されます) が、この悪名高い stdin バッファリング (おそらく 4KB、確認していません) がすべてを遅らせているようです。
私は次のことを試しました:
- を使用して標準入力を開く
os.fdopen(sys.stdin.fileno(), 'r', 0)
- 私のハッシュバンでの使用
-u
:#!/usr/bin/python -u
export PYTHONUNBUFFERED=1
スクリプトを呼び出す直前の設定- 読み取られた各行の後に出力をフラッシュします(問題が入力バッファリングではなく出力バッファリングに起因する場合に備えて)
私のpythonバージョンは2.4.3です-追加のプログラムやパッケージをアップグレードまたはインストールする可能性はありません。これらの遅延を解消するにはどうすればよいですか?
c - 文字配列からの出力を変更する
再び、私は自分自身が比較的道に迷い、仲間から知識を求めていることに気づきました。私がする必要があるのは、子音の後に文字「u」「t」を追加して英語に出力するエンコードされた言語を取り込むプログラムを作成することです。したがって、入力した Hutelutluto は hello として出力されます。最初は理解できたと思っていましたが、教授は最初の入力を文字配列に格納して表示する必要があると言いました。次に、その文字配列を使用して、変更された翻訳を出力します。
私はいくつかの異なる角度を試しました.1つは、変更パラメーターに合わせて読み取り文字列関数を変更しようとしました。それは常にめちゃくちゃになってしまい、予期しない出力が得られます。
基本的に、文字配列を while ループに入れるには助けが必要だと思いますが、試してみると、整数エラーとのポインター比較があるというエラーが表示されます。
これが私のコードの私の版で、問題の解決に最も近いと信じています。現時点では、while は readstring 関数とは独立して機能します。私は問題を考えすぎていると確信していますが、ねじれを解決する方法がわかりません。:
どんな助けやフィードバックも大歓迎です!お時間をいただきありがとうございます!
ps
あなたのアドバイスを考慮した後、コードを編集しましたが、最初の入力以降はすべて無視されているようです。!='\n' 条件を i < 50 に変更してみましたが、同じ結果が得られました。
ティムのアドバイスを受けた後のコード行:
select - ZF2 バッファリングされていない SQL MySQL 選択
MySQL データベースの 800 万レコードを読み取る必要がある ZF2 コンソール アプリケーションがあります。
バッファリングされていない MySQL クエリを実行しようとしていますが、Zend\Db\TableGateway\TableGateway を使用したり、Zend\Db\Adapter\Adapter を直接使用したりする適切な方法を見つけることができません。おそらく間違った場所を探しているのでしょうか?
Zend Framework 2 を使用して数百万行を読み取る適切な例を探しています。
デバッガーとの長い、長い、長いセッションの後、ZF2 コードを読んだ後、次のようにすると、望ましい動作が得られることがわかりました。
c - x86_64 で大きな 6GB ファイルの read() が失敗する
これが私の問題の説明です:
Cのシステムコールを使って6.3GB程度の大きなファイルを全てメモリに読み込みたいのですread
が、エラーが発生します。コードは次のとおりです。
そしてそれをコンパイルします:
次に実行します:
出力:
システム環境は
私が理解していない2つの場所があります:
- 大きなファイルの読み取りは失敗しますが、小さなファイルでは失敗しません。
- エラーが出ていても
errno
が正しく設定されていないようです。
c# - C# 外部コマンドを呼び出し、バッファリングされていない Stdout を読み取る
外部コマンド ライン プログラムを呼び出して、標準出力をバッファなしで読み取る方法はありますか? いくつかのトピックと例を読みましたが、Process.BeginOutputReadLine()
すべての前提条件での使用を提案しています。( MSDN Process.BeginOutputReadLine )
私の問題は、私が呼び出しているプログラム (ソースコードを持っていない) が、実行中に出力を改行しないことです。その結果、実行が完了するまで待ってから、すべてのデータを一度に解析する必要があります。
何か案は?
呼び出しているプログラムを追加しSTART /B more & my_prog.com
、実行中のプロセスに標準入力の改行を追加するというアイデアがありましたが、プログラムから「開始: /B: 指定されたファイルが見つかりません」と動作することはありませんでした。. ただし、CMDプロンプトでは機能するようです。