問題タブ [stdin]
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.
c++ - stdin、stdoutをソケットに転送して任意のプロセスを実行する最も簡単な方法は何ですか?
私は2つの状況に興味があります:
- C ++からそれを行う方法は?
- システムのシェルからそれを行う方法は?
Linux、Windows、OSXの回答は大歓迎です。
c - ブロックせずにstdinがまだ開いているかどうかを確認する方法は?
stdin が閉じられたときに実行を停止するには、純粋な C で書かれたプログラムが必要です。
プログラムのメイン サイクルで行われる無期限の作業があり、ブロッキング チェック (のようなgetc()
) を使用する方法はありません (標準入力にデータが到着することは想定されていません - 未知の時間だけ開かれたままになります)。
inetd、xinetd、またはそれらの類似物でホストされているネットワークデーモンの実現に説明されている機能を使用する予定です-接続が開いたままの状態で標準出力にデータを出力し、閉じたときに作業を正しく終了する必要があります。接続が終了しても停止しないため、ホスティングサービスによってプログラムが強制終了されました。
fctntl()
標準入力記述子にO_NONBLOCK
フラグを適用すると、read()
ノンブロッキング モードで関数を使用できるようになるのでしょうか? select()
どうにか使えばいいのでは?
PS データは想定されていませんが、stdin に到着する可能性があります。ノンブロッキング読み出しの方法は、質問に対する答えになるでしょう。
java - Java: dealing properly with pipes as stdin
I get a weird error ("The process tried to write to a nonexistent pipe.") if I stop reading from piped input, from a program that works fine for non-piped input. How can I avoid causing this error?
code:
runtime output (testfile.txt is just a large text file with more than 10 lines):
c - ここでSTDINをフラッシングするにはどうすればよいですか?
ユーザーから入力を取得し、(scanf を使用して) unsigned int に格納し、それを処理する他の関数に入力を返す関数 (C) があります。
標準入力をフラッシュする必要があるため、getc を使用して while ループを使用したいと考えていました。
しかし、次の方法がわかりません。
A) getc 内で操作を行います。これは、取得した各文字に対してチェックを処理して値を連結する方法、または getc を使用するかどうかに関係なく、そこから連結して scanf を完全に削除する方法のように行います。
B) これが最も適切な方法であるかどうか。
親切な人が私にいくつかのヒントと指針を与えることができます:)
ありがとう。
c - Cはバイナリ標準入力を読み取ります
命令パイプライン シミュレータを構築しようとしていますが、開始するのに多くの問題があります。私がする必要があるのは、標準入力からバイナリを読み取り、データを操作している間、何らかの方法でメモリに格納することです。正確に 32 ビットのチャンクを次々と読み取る必要があります。
一度に正確に 32 ビットのチャンクを読み取るにはどうすればよいですか? 第二に、後で操作するためにどのように保存しますか?
これが私がこれまでに得たものですが、さらに読んだバイナリチャンクを調べると、正しく見えません.必要な32ビットを正確に読んでいるとは思いません.
一度に 32 ビット (すべて 1/0、改行なしなど) を読み取るにはどうすればよいchar[]
ですか?
編集:バイナリを読み取ることはできますが、正しい順序でビットを生成する答えはありません-それらはすべて混乱しており、エンディアンと、一度に8ビット(1文字)を読み取って移動する際の問題が疑われます-これWindows と C で動作する必要があります ... ?
select - ncurses と stdin ブロッキング
セットに標準入力があり、ユーザーが入力してヒットするたびに標準select()
入力から文字列を取得したいと考えています。Enter
ただし、select は、ヒットする前、およびまれに、何かがまったく入力される前に、ready to read としてstdinをトリガーします。これにより、ヒットEnterするまでプログラムが停止します。getstr()
Enter
設定nocbreak()
してみましたが、画面に何もエコーされないため、入力しているものがわからないことを除けば、本当に完璧です。そして、設定echo()
はそれを変更しません。
も使用してみtimeout(0)
ましたが、その結果はさらにクレイジーで機能しませんでした。
c++ - このプログラムが失敗するのはなぜですか (時々)?
このコードは、問題を示すための単なるスニペットです。完全なアプリケーションでは、プロセスとの読み取り/書き込み通信が必要です。
私はそれをコンパイルします:
ターミナルの bash コマンドラインから実行します。
このプログラムが時々 FAIL を出力し、時々ループにとどまることがあるのはなぜですか?
編集: これは scan/printf に関する質問ではありません。同じ問題は、iostreams + 文字列を使用する場合です。この質問は、QProcess と親プロセスのファイル記述子との相互作用に関するものです。
python - python stdin eof
Pythoneofをstdinに渡す方法
これが私のコードです
入力文字列ウィンドウを入力した後、コマンドラインでcommdを実行すると、Ctrl+Zが入力の受け入れを終了することを期待しています。
プログラムでeofまたはCtrl+Zを渡すにはどうすればよいですか?
ありがとう!