問題タブ [vfork]

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

vfork - vfork() の戻り値の型

GNU マニュアルから:

vfork() 関数は fork(2) と同じ効果がありますが、vfork() によって作成されたプロセスが vfork() からの戻り値を格納するために使用される pid_t 型の変数以外のデータを変更した場合の動作は未定義です。 、

どういう意味ですか?の戻り値を非型変数vfork()に代入できないということですか?pid_t

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

process - fork() の後で異なる変数を異なるプロセスに設定するのはなぜですか?

私はこのようなコードに出くわしました

スタック オーバーフローで学んだことから、親プロセスと子プロセスの char 値が異なることがわかります。子の値は「C」で、親の値は「P」です。また、親と子の両方のアドレスが同じである必要があることもわかります。これは、'sharedVariable'(&sharedVariable) へのアドレスです。

しかし、ここに私の質問があります。

  1. 異なるプロセスに異なる char 値を割り当てるポイントは何ですか? 一つには、各プロセスを pid==0 または >0 で既に識別できるため、このステップは冗長ではありませんか? もう 1 つの理由は、同じ仕事をする 2 つのプロセスを区別する意味がわからないことです。
  2. 親と子のアドレスを同じままにしておくのはなぜですか? それらは同様のタスクを続行すると想定されているため、コードをコピーして貼り付けるだけでよいため、そうすると便利だと思います。迷っているので確認したいです。
  3. fork() を vfork() に置き換えた場合、親の char 値の結果は「C」になりますか?

100 万前もって感謝します。