問題タブ [dup]

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 に答える
139 参照

c - fopen +stream_dupでのストリーム記述子の損失

私は次のコード例を持っています(Windowsで):

さらに使用するにはfdの値が必要ですが、値を失うことなくファイルから読み取るにはどうすればよいfdですか?

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

c - 誰かが C の dup() の機能を説明できますか?

私は、dup、dup2、dup3 が「ファイル記述子 oldfd のコピーを作成する」ことを知っています(man ページから)。でも消化できない。

私が知っているように、ファイル記述子はファイルの場所とその方向(入力/出力)を追跡するための単なる数字です。する方が簡単ではないでしょうか

ファイル記述子を複製したいときはいつですか?

そして何か他のもの..

dup() は、番号が最も小さい未使用の記述子を新しい記述子に使用します。

それは、 stdinstdout、またはstderrのいずれかをclose()したと仮定すると、値としても取ることができるということですか?

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

c - dup2ファイルへのソケット

すべて、冬が来て、plzは暖かく健康を保ちます。仕事についての瞑想中に、私はfddup2の機能についていくつか質問を受けました。ソケットサーバーとクライアントを作成します。サーバーが送信し、クライアントがデータを受信します。しかし、クライアントがサーバーにあるファイルから直接データを読み取れるようにするために、サーバーソケットfdをファイルdfにdup2したいと思います。私は次のように書きます

しかし、それは機能しませんこれは可能ですか?これについて何かアドバイスをいただけますか?ありがとう

0 投票する
4 に答える
17536 参照

c - STDOUTとSTDERRをCのソケットにリダイレクトしますか?

STDOUTとSTDERRをソケットにリダイレクトしようとしています。

やった:

どういうわけか、それは出力の最初の小さな部分だけを示しました。

たとえば、lsまたはmkdirを実行しようとすると、「mkdir」に表示されました。

どうしたの?

以下を試してみましたが、STDOUTまたはSTDERRのいずれかしかリダイレクトできません

どうもありがとう。

0 投票する
3 に答える
1611 参照

c - なぜclose()システムコールが出力をフラッシュするのですか?

これが私のコードです:

私が実際にやろうとしているのは、write() システム コールの代わりに printf() を使用して、「スタック オーバーフロー」をファイルに出力することです。

コンテンツをファイルに出力していません。しかし、私が観察したことの1つは、コードを削除すると:

期待どおりに内容をファイルに出力しています。しかし、私はその理由を理解できません。内容を印刷してから、newfd を閉じるだけです。

これの理由は何ですか?

0 投票する
3 に答える
2218 参照

ruby - インスタンス変数は「dup」後も参照しています

クラスのオブジェクトがあり、それを で複製したいと考えていdupます。インスタンス変数の 1 つが配列で、それを参照しているようです。dup は実際に DUPLICATE を作成したと思いました。

これが私の IRB セッションです。

参照ではなく、まったく新しい変数を作成するaため、変更されないことが期待されます。dup

[1,2,3]また、 でスカラーに置き換えた場合G::initialize、はそれを参照しないことに注意してくださいdup

0 投票する
5 に答える
9942 参照

ruby - Ruby の複製/クローンを再帰的に

私は次のようなハッシュを持っています:

このハッシュの複製が必要です。変更は元のハッシュに影響を与えるべきではありません。

試してみると、

ここでは、が別のハッシュ オブジェクトであるproject['duration']ため、元のハッシュで is が変更されていることがわかります。project

dupedハッシュをまたはcloned再帰的にしたい。どうすればこれを達成できますか?

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

c - Cでstdoutをリダイレクトするときの奇妙な動作

stdoutをファイルにリダイレクトしてから、Cで元のファイルに復元しようとしていますが、次の奇妙な問題に直面しています。次のコードは
in stdout
in stdout
、stdoutとin fileそれぞれのファイルに正常に書き込まれます。

ただし、メイン関数の最初の行を削除します。

stdout in file
in stdout
に書き込まれ、ファイルには何も書き込まれません。これはどうして起こったのだろうか?助けてくれてありがとう。

0 投票する
3 に答える
4910 参照

python - C 呼び出し用に Python から stdout をリダイレクトする

これは、特にその答えに関するhereからのフォローアップの質問です。


Python モジュールから、単に標準出力に出力するHello WorldHello World実行可能ファイルを呼び出しています。その出力をPythonにリダイレクトすることに興味があり、このStringIO回答に出くわしました。これにより、ほとんど解決策にたどり着きました。

この回答の重要な部分は、次のコード セグメントです。

また、リダイレクト前の標準出力を復元したいと思います。

質問

  1. 上記の関数で正確に何が起こっているのでしょうか?
    • dupとは何dup2ですか?
    • とは/dev/null?
    • 8 行目は何をしているのですか? ( sys.stdout = os.fdopen(newstdout, 'w'))
  2. StringIOstdout をオブジェクトに保存するにはどうすればよいですか?
  3. Hello Worldプログラムを呼び出した後、stdout を復元するにはどうすればよいですか?

質問 1 の答えがわかれば、質問 2 と 3 の答えも簡単になると確信しています。とにかく投稿して、質問1の答えを自分の行きたい方向に押し進めることにしました。

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

python - Pythonのdup、dup2、tmpfile、およびstdout

これはhereからのフォローアップの質問です。


行きたいところ

Pythonがまだ標準出力に出力できる間に、標準出力を一時ファイルに一時的にリダイレクトできるようにしたいと考えています。これには、次の手順が含まれます。

  1. stdout のコピーを作成します ( new)
  2. 一時ファイルを作成する ( tmp)
  3. stdout をリダイレクトするtmp
  4. newstdout として使用するように Python に指示する
  5. tmp「実際の」stdout にリダイレクトする
  6. 「本物の」stdout を再度使用するように Python に指示します。
  7. 読んで閉じるtmp

実装

上記を次の方法で実装しようとしました。

ここで少し休憩してまとめたいと思います。
ここまでのコンソールへの出力は次のようになります。

whilesil次のようになります['0.3\n']。したがって、ここまですべてが魔法のように機能しています。ただし、上記のスクリプトをもう一度やり直すと、次のようになります。

エラーが発生し、出力は次のようになります。

whilesil読み取り: ['0.3\n', ''].

つまり、2 番目Func("1.3", True)は一時ファイルに書き込むことができません。

質問

  1. まず、スクリプトが動作したいように動作しない理由を知りたいです。つまり、一時ファイルへの書き込みがスクリプトの前半でしかできないのはなぜですか?
  2. dupとの使い方にはまだ少し戸惑っていますdup2。stdout の一時ファイルへのリダイレクトがどのように機能しているかは理解していると思いますが、なぜos.dup2(new, 1)それが何をしているのかが完全にわかりました。おそらく、答えは、スクリプト内のすべてのdupand dup2s が何をしているのかについて詳しく説明できるかもしれません^^