shm_unlink サブルーチン
目的
共用メモリー・オブジェクトを除去します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <sys/mman.h>
int shm_unlink (name)
const char *name;説明
shm_unlink サブルーチンは、 name パラメーターが指すストリングによって指定された共用メモリー・オブジェクトの名前を除去します。
オブジェクトのリンク解除時に共用メモリー・オブジェクトへの参照が 1 つ以上存在する場合、 shm_unlink サブルーチンが戻る前に名前が除去されますが、メモリー・オブジェクトの内容の除去は、すべてのオープンおよび共用メモリー・オブジェクトへのマップ参照が除去されるまで延期されます。
最後の shm_unlink 呼び出しの後もオブジェクトが存在し続ける場合でも、名前を再使用すると、 shm_open サブルーチンは、この名前の共用メモリー・オブジェクトが存在しないかのように動作します。 つまり、 shm_open サブルーチンは、 O_CREAT が設定されていない場合は失敗し、 O_CREAT が設定されている場合は新しい共用メモリー・オブジェクトを作成します。
パラメーター
| 項目 | 説明 |
|---|---|
| name | リンク解除する共用メモリー・オブジェクトの名前を指定します。 |
戻り値
正常終了すると、ゼロが戻されます。 そうでない場合は-1が返され、エラーを示すerrnoが設定される。 -1が返された場合、指定された共有メモリー・オブジェクトはサブルーチン呼び出しによって変更されない。
エラー・コード
shm_unlink サブルーチンは、以下の場合に失敗します。
| 項目 | 説明 |
|---|---|
| EACCES | 指定された共用メモリー・オブジェクトをリンク解除する許可が拒否されました。 |
| EFAULT | name パラメーターは、プロセスに割り振られたアドレス・スペースの外側を指しています。 |
| EINVAL | 名前パラメーターが空の名前ストリングであるか、欠落しています。 |
| ENAMETOOLONG | name パラメーターの長さが PATH_MAX を超えているか、パス名コンポーネントが NAME_MAXより長くなっています。 |
| ENOENT | 指定された共有メモリー・オブジェクトが存在しません。 |
| ENOTSUP | この機能は、チェックポイント再始動されたプロセスではサポートされません。 |