問題タブ [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.
ruby-on-rails - Rails でレコードとその関係をどのように複製できますか?
、 のアプリがあり、og_objects
この
アプリのクローンを作成する方法を作成しました。og_actions
stories
og_objects
、og_actions
およびをクローンに複製しようとしてstories
いますが、行き詰っています。
2か所引っかかってます。
1. クローンを作成すると、オブジェクト、アクション、ストーリーが新しいクローンに移動されますが、それらは複製されません。つまり、親アプリはそれらを失います。
2. 新しいクローンに og_objects プロパティがないというエラーが表示されます。具体的には、エラーは次のとおりです。
これは私が持っているコードです:
私のコントローラーにはジェネレーターがあり、次のコードがあります。
ruby - rubyで属性を設定したオブジェクトのコピー
Rubyで、属性が設定されたオブジェクトの作成コピーを返すことは可能ですか?
もちろん、これを行うためのメソッドを定義できます -
しかし、これをすべての属性で行うのは少し面倒かもしれません。
ruby - deep_clone gem が created_at を複製しない
Railsオブジェクトを複製してcreated_at
います。オブジェクトの値を除くすべての詳細で正常に複製されています。深い複製を行うために deep_clone gem を使用しています。
ここにコードがあります。raw_materials と costing_items の created_at 値が必要です。
c - UNIX の pipe および dup 関数
以下に書かれているコードから疑わしい点があります。
このコードは、dup 関数の処理方法を説明しています。
ご覧のとおり、pid が 0 の場合 (子プロセスが進行中であることを意味します)、パイプの読み取り部分を閉じ、stdout ファイル記述子も閉じます。(閉じる(pdf[0])、閉じる(1))。
パイプの書き込み部分(pdf[1])は前のstdoutの場所に配置する必要があるため、stdout fdを閉じる必要があることを理解できます。(dup(pdf[1]))
ただし、なぜパイプの一部を読み取り (close(pdf[0]) )、パイプの書き込み部分を閉じる必要があるのか (close(pfd[1])) を理解できませんでした。
パイプは双方向とはいえ、使用しないパイプの他の部分を閉じた状態にする必要はないと思います。
特に、close(pdf[1]) <- この部分、出力ストリームがない場合 (execlp 関数を実行する前に stdout と pdf[1](パイプの書き込み部分) が閉じられたため)、execlp 関数の出力はどこに行きましたか? ?
c - Xterm ページャー - 2 つの端末出力 - パイプと dup2 を使用
C でページャーを実装しようとしています。コードで別のターミナル ( xterm
) を開き、いくつかの出力を出力したいと考えています。
最初にパイプを作成し、メイン プログラムを fork します。子は tail コマンドで xterm を実行し、メイン プログラムはパイプ内のものを出力し、xterm を実行する前に子はパイプを複製し、パイプを stdin ファイル記述子に関連付けます。子。
コードが機能しないため、pipe
andの使用法を誤解している可能性があります。dup2
今のところ、親に何かを入力しても、両方のプロセスで何も出力されません。では、xterm と親プロセスの間の通信を作成するにはどうすればよいでしょうか。
編集:私のプログラムのサンプル:
概して:
へのいくつかの呼び出しが続きますverbose
。init_outputxterm
ソリューションのように、xterm の作成直後に xterm に書き込むテントビエで確認できます。しかし、メインターミナルを残忍に閉じてプログラムを終了した後にのみすべてが表示され、子プロセスが孤児になります(子プロセスを終了するとCtrl-C
、子供も殺されます)。
c - fifo stdout からの画面への出力に失敗しました
2 つの子 (execl によって 2 つのプロセスを実行) と 1 つの fifo を持つプログラムがあります。printf が使えないので、両方の子に fifo の読み書きをさせたい。問題は、最初の子だけが私の FIFO に書き込むすべてが画面に出力されることを確認することです。「fifoCommunication」は、父が作成した fifo の名前です。最初の子のプロセス内のコードのみを次に示します。
私はそれが正しい構文ではないことを知っていますが、メッセージが画面に正しく出力されていることを確認する方法がわかりません。また、他の子が画面にメッセージを出力するのを防ぎます。