2016-06-13 8 views
0

私はmallocからintのメモリサイズを求めて、1つの親から 'n'個の子プロセスを作成します。 各子がそのメモリ内の値を更新(追加)する可能性があるので、最後に親プロセスがその値を読み込みますか?mallocを使って親と子の間で通信する

+9

を確認してください。各子には、変更可能なメモリのコピーがあります。それは、お互いの子供の記憶のコピーから完全に離れており、また親の記憶のコピーから完全に離れている。子供は親の記憶のコピー(兄弟のコピー)を変更することはできません。あなたが望むことをするには、「共有メモリ」を使う必要があります。おそらく、共用メモリへのアクセスを同期させる必要があります。少なくとも、親は、各子が共有メモリの一部に書き終わったことを知る必要があるため、子が書いた情報を安全に得ることができます。 –

+0

助けてくれてありがとう! –

答えて

6

いいえ、子と親の間に共通のメモリはありません。あなたが使用することができ、子と親の間で通信していると :

Shared memory //すべてのPOSIXシステムを、Windowsの

Pipes、(Example of Named Pipes)、Pipe tutorial //すべてのPOSIXシステムで、Windowsの

FIFO files //ほとんどのオペレーティングシステム

sockets //ほとんどのオペレーティングシステム

他の方法の詳細については、Inter-process communication

関連する問題