• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数同時実行時の参照先について)

複数同時実行時の参照先について

このQ&Aのポイント
  • 複数同時に実行される場合において、あるプロセスのbufの参照先に格納された文字列を取得して実行する現象が発生する可能性があります。
  • プログラムの問題の可能性がある部分は、bufの参照先の文字列が他のプロセスと共有されることです。
  • この問題を解決するためには、各プロセスごとに個別のbufを使用するか、参照先の文字列をローカル変数として扱う必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

どなたも回答されてないようなので、回答します。 >以下のプログラムを複数同時に実行した場合 >あるプロセスにおいて、別プロセスと同じ >bufの参照先に格納された文字列 >を取得して実行してしまう現象が発生しております。 通常、別プロセスの場合、mallocした領域を共通に参照できることはあり得ません。プロセスAのmallocの結果とプロセスBのmallocの結果が、同じアドレスであったとしても、それは、べつの領域になります。従って、別プロセスと同じbufの参照先に格納された文字列を取得することは、あり得ません。「別プロセスと同じbufの参照先に格納された文字列を取得した」ことの判断は、どのようにしてなされたのでしょうか。 bufの用途はプログラムのソースを見た限りでは、プログラムに渡された引数を確保しているだけです。別プロセスに対して同じ引数を与えた場合は、当然bufの内容は、おなじものとなりますが、そのことを、「別プロセスと同じbufの参照先に格納された文字列を取得した」といっているのでしょうか。

関連するQ&A