[Volgograd] shm
kordv
kordv на vng.com.ru
Пт Окт 10 16:29:07 MSD 2003
kordv wrote:
> Почему дитячий процесс получает ошибку, при вызове shmat ?
> /*
> 950 == 01666
> удалить разделяемый сегмент после последнего отсоединения
> всем разрешены запись и чтение
> */
> /* в основном процессе */
> id = shmget(0x0103018d, 0x000f4240, 950);
> /* id == 0x0c6d0006 */
>
Кстати, если смотреть /usr/include/bits/ipc.h, то
#define IPC_CREAT 01000 /* Create key if key does not exist. */
В % man shmget сказано:
If a new segment is created, the access permissions from shmflg
are copied into the shm_perm member of the shmid_ds structure
that defines the segment.
В /usr/include/bits/shm.h
/* shm_mode upper byte flags */
# define SHM_DEST 01000 /* segment will be destroyed on last
detach */
Получается, если передавать IPC_CREAT в shmget, то он копируется в shm_mode
и интерпретируется там как SHM_DEST.
Или я чего-то не понял?
--
Akkord
V-LUG team
Подробная информация о списке рассылки Volgograd