問題タブ [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.
c - C 2 つのキャラクター デバイスを結合する
2 つのデバイスがあり、1 つは pts ( /dev/pts/N
)、もう 1 つは socket( /path/to/socket
) です。私はptsを無限に読んでそれをソケットに書き、無限にソケットを読んでptsに書きたいと思っています。
私が今行っているのは、両方を開いて2つのスレッドで読み取りループを作成することですが、カーネル空間でいくつかの作業を行うパイプを使用した簡単な方法はありますか?
c - ac シェルでリダイレクトを実現する方法は?
dup (または dup2) を使用してリダイレクトを実現する方法、つまり のようなコマンドを実行する方法sort < in.txt > out.txt
. ※(bin/sh/)のように新しいシェルを作成するシステムコールは許可されていません。
ruby - a << b が a = a + b と異なる動作をするのはなぜですか (文字列を含むハッシュのコピーされた配列を使用)
元の配列を変更せずに、配列のコピーを変更しようとしています。これはハッシュの配列なので、使用する配列の「まったく新しい」コピーを作成するには:
コピーのハッシュの文字列にデータを追加したい。
とを使用する=
と正常に動作します+
:
ただし、それを使用する<<
と、コピーとオリジナルの両方が変更されます。
それはRubyのバグですか?
php - PHP で static を使用してクラス名を示す重複のような関数を削除する
基本クラス Hello の getCopy() と同じように見える場合、派生クラス HelloAndGoodbye の getCopy() メソッドを取り除く方法はありますか?
さらに、これを達成するための効率的な方法は何ですか?
(2 つの関数の唯一の違いは、基本クラスでは 'static' が 'Hello' を参照し、派生クラスでは 'static' が 'HelloAndGoodbye を参照することです。そこに含まれる変数については、簡単に名前を変更できるため、両方の関数で同じです)。
出力:
linux - dup() システムコールの説明
ファイルディスクリプタの複製に関して、dup() 関数の本当に馬鹿げた説明を得ることができますか? パイプを使いたいのですが、パイプから読み取るように子を作成する必要があります(これは簡単な部分です)が、データを親に書き戻します。別のパイプを使用する必要がありますか、それとも同じパイプを使用できますか?
c - fork と dup を使用した単純な http 汎用サーバー
非常に基本的な HTTP サーバーを作成しようとしています。サーバーとサービスを 2 つの別個の実行可能ファイル (inetd と同様) に分離したいと考えています。
したがって、サービスをフォークし、execを使用してそのコードを実行する汎用サーバーがあります。主なループは次のとおりです。
サービスは stdin で読み取り、stdout で書き込み、単純な http 要求を処理します。nc を使用してサーバーに接続すると、すべて正常に動作するようです。nc は、予想される http 応答を受信して表示します。
ただし、Webブラウザを使用してサーバーに接続すると、ブラウザはサーバーが接続を突然閉じたことを通知します(ECONNRESETエラーだと思います)。サービスがリクエストを処理したことは確かです。strace を使用してサービスの実行を確認しました。予想される「write(1,...)」はすべてそこにあり、close(1) はありません。さらに驚くべきことに、Web ブラウザーが応答を受け取ることがあります。
提供されたコードに問題があるように見えますか? そうでない場合、何が問題を引き起こす可能性がありますか?
c - FIFO (名前パイプ) を使用した stdin のリダイレクト
サーバークライアントベースのCプログラムを作成しています。
stdin を作成した名前付きパイプにリダイレクトしようとしてきましたが、パイプに書き込むクライアントを置くことができました。サーバー側では、同じパイプを開き、stdin を閉じて、dup (dup2 でも試しました) を使用して stdin をパイプにリダイレクトしました。
関数 getline で入力を読み取る必要があります。問題は、最初の入力を正しく読み取るが、その後は null しか受信しないことです。質問にサンプルを追加します。
サーバ:
* null の原因はわかっていますが、(リダイレクトではなく) read で出力し、(null) を出力しました。
クライアント:
- クライアント側で read を使用すると (O_WRONLY を O_RDWR に置き換える)、入力したとおりに文字列が出力されるため、それが正しいと思われます。
誰でもこれで私を助けることができますか?