• 締切済み

共有メモリの削除

Cでunix系のネットワークプログラムをくんでいます。 シェアードメモリ(共有メモリ)を使用して作業していますが、 あるブロックを指定して共有メモリを削除する方法はどうすればよいですか? *shmclientという構造体の共有メモリがあります。 n番目の共有メモリを削除したいです。 memcpy((char *)(shmclient+n), 0, sizeof(shmclient)); 上のように0(NULL)をコピーしましたが成功しませんでした。 よろしくお願いします。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

sysv系なら、shmdt()じゃないですか? 詳しくは、「man shmdt」を。 > memcpy((char *)(shmclient+n), 0, sizeof(shmclient)); > 上のように0(NULL)をコピーしましたが成功しませんでした。 というのも、ちょっと怪しいような。 これだと、nバイト分、メモリ壊しません? それより先に、番地0にアクセスして、怒られるのではないかと。

すると、全ての回答が全文表示されます。

関連するQ&A