shm_unlink()

Удалить объект разделяемой области памяти

Прототип:

#include <sys/mman.h>
int shm_unlink( const char *name );

Аргументы:

name
Имя объекта в разделяемой области памяти, который требуется удалить.

Библиотека:

libc

Описание:

Функция shm_unlink() удаляет имя объекта в разделяемой области памяти, указанное в name. После удаления имени использование shm_open() для доступа к объекту станет невозможным.

Эта функция не оказывает влияния на ссылки на объект в разделяемой области памяти (т.е. уже открытые файловые дескрипторы или уже отображенные в адресное пространство объекты разделяемой памяти). Если существует более одной ссылки на объект в разделяемой области памяти, счетчик ссылок уменьшается, однако сегмент разделяемой области памяти фактически не удаляется до тех пор, пока не будут удалены все открытые и отображенные ссылки на него.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EACCES
Отказано в разрешении на удаление объекта из разделяемой области памяти.
ELOOP
Слишком много уровней символических ссылок или префиксов.
ENAMETOOLONG
Длина аргумента name превышает NAME_MAX.
ENOENT
Именованный объект разделяемой области памяти не существует, или аргумент name указывает на пустую строку.
ENOSYS
Функция shm_unlink() не поддерживается текущей реализацией.

Примеры:

См. shm_open().

Классификация:

POSIX 1003.1 Shared Memory Objects

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

mmap(), munmap(), mprotect(), shm_ctl(), shm_ctl_special(), shm_open()




Предыдущий раздел: Описание API системной библиотеки