日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
shm_unlink (Integrity, Alpha) |
共用メモリ・オブジェクトを削除します。
#include <sys/mman.h>int shm_unlink (const char *name);
name
削除する共用メモリ・オブジェクトの名前を示す文字列へのポインタ。
shm_unlink関数は, name (の指す文字列) で指定した共用メモリ・オブジェクトについて,その名前を削除します。ただし shm_unlinkの処理では,共用メモリ・オブジェクトをアンリンクするときにそのオブジェクトの参照元が 1 個以上存在していると,その名前を削除しただけで,呼び出し元へ戻ります。メモリ・オブジェクトの内容は,その時には削除されません。メモリ・オブジェクトの内容が削除されるのは,その共用メモリ・オブジェクトに対して,オープンされている参照とマッピングされている参照がすべて削除された後です。
共用メモリ・オブジェクトは,最後の shm_unlinkが実行された後でも存在し続けることがあるかもしれません。しかし,そのような場合に shm_unlinkでその名前を指定して再使用しようとしても,その名前の共用メモリ・オブジェクトが存在していないかのように処理されるだけです。つまり, shm_openは,O_CREAT を設定しないで呼び出すと失敗し, O_CREAT を設定して呼び出すと,新しい共用メモリ・オブジェクトが作成されます。
0 成功したことを示します。 -1 失敗したことを示します。指定した共用メモリ・オブジェクトは変更されていません。 errno に,エラーを示す次のいずれかの値が設定されます。
- EACCES ---指定した共用メモリ・オブジェクトをアンリンクするための許可が認められませんでした。
- ENAMETOOLONG --- name 引数の長さが PATH_MAX を超えているか,パス名に長さが NAME_MAX を超えているコンポーネントが存在しています。
- ENOENT ---指定した共用メモリ・オブジェクトが存在していません。
目次 | 索引 |
|