[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