Rechercher une page de manuel
shmctl
Langue: ja
Version: 2005-05-30 (openSuse - 09/10/07)
Section: 2 (Appels système)
̾Á°
shmctl - ¶¦Í¥á¥â¥ê (shared memory) ¤òÀ©¸æ¤¹¤ë½ñ¼°
#include <sys/ipc.h> #include <sys/shm.h>int shmctl(int shmid, int cmd, struct shmid_ds *buf);
ÀâÌÀ
shmctl() ¤Ï¡¢¼±Ê̻Ҥ¬ shmid ¤Î¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ·¤Æ cmd ¤Ç»Ø¼¨¤·¤¿À©¸æÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¡£buf °ú¤¿ô¤Ï¡¢ shmid_ds ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ ¤³¤Î¹½Â¤ÂÎ¤Ï <sys/shm.h> ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë
struct shmid_ds { struct ipc_perm shm_perm; /* ½ê͸¢¤Èµö²Ä */ size_t shm_segsz; /* ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º (¥Ð¥¤¥È) */ time_t shm_atime; /* ºÇ¸å¤ÎÉղà (attach) ¤Î»þ¹ï */ time_t shm_dtime; /* ºÇ¸å¤ÎʬΥ (detach) ¤Î»þ¹ï */ time_t shm_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */ pid_t shm_cpid; /* ºîÀ®¼Ô (creator) ¤Î PID */ pid_t shm_lpid; /* ºÇ¸å¤Î shmat(2)/shmdt(2) ¤Î PID */ shmatt_t shm_nattch; /* ¸½ºßÉղ䵤ì¤Æ¤¤¤ë¿ô */ ... };
ipc_perm ¹½Â¤ÂÎ¤Ï <sys/ipc.h> ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë (¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï IPC_SET ¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë):
struct ipc_perm { key_t key; /* shmget(2) ¤ËÍ¿¤¨¤é¤ì¤ë¥¡¼ */ uid_t uid; /* ½êͼԤμ¸ú UID */ gid_t gid; /* ½êͼԤμ¸ú GID */ uid_t cuid; /* ºîÀ®¼Ô¤Î¼Â¸ú UID */ gid_t cgid; /* ºîÀ®¼Ô¤Î¼Â¸ú GID */ unsigned short mode; /* µö²Ä + SHM_DEST ¤È SHM_LOCKED ¥Õ¥é¥° */ unsigned short seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */ };
cmd ¤È¤·¤Æ͸ú¤ÊÃͤϰʲ¼¤ÎÄ̤ê:
- IPC_STAT
- shmid ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤξðÊó¤ò buf ¤Ç»Ø¤µ¤ì¤¿ shmid_ds ¹½Â¤ÂΤ˥³¥Ô¡¼¤¹¤ë¡£ ¸Æ¤Ó½Ð¤·¸µ¤Ï¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ¹¤ë Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
- IPC_SET
- buf ¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤ë shmid_ds ¹½Â¤ÂΤΤ¤¤¯¤Ä¤«¤Î¥á¥ó¥Ð¡¼¤ÎÃͤò¡¢ ¤³¤Î¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤¹þ¤ß¡¢ shm_ctime ¥á¥ó¥Ð¡¼¤â¹¹¿·¤¹¤ë¡£ °Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤Ç¤¤ë¡£ shm_perm.uid, shm_perm.gid, shm_perm.mode (¤ÎºÇ²¼°Ì 9 ¥Ó¥Ã¥È)¡£ ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬½êÍ¼Ô (shm_perm.uid) ¤Þ¤¿¤ÏºîÀ®¼Ô (shm_perm.cuid) ¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
- IPC_RMID
- ¥»¥°¥á¥ó¥È¤ËÇË´þºÑ¤ß¤Î¥Þ¡¼¥¯¤òÉÕ¤±¤ë¡£ ¥»¥°¥á¥ó¥È¤Ï¡¢¼ÂºÝ¤Ë¤ÏºÇ¸å¥×¥í¥»¥¹¤¬¥»¥°¥á¥ó¥È¤òʬΥ¤·¤¿ (´ØÏ¢¤¹¤ë shmid_ds ¹½Â¤ÂΤΠshm_nattch ¥á¥ó¥Ð¡¼¤¬ 0 ¤Ë¤Ê¤Ã¤¿) ¸å¤Ç¤Î¤ßÇË´þ¤µ¤ì¤ë¡£ ¸Æ¤Ó½Ð¤·¸µ¤Ï½êͼԤ«ºîÀ®¼Ô¤Ç¤¢¤ë¤«¡¢Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¥»¥°¥á¥ó¥È¤ËÇË´þ¤Î¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤ë¤È¡¢ ´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂΤˤª¤¤¤Æ shm_perm.mode ¥Õ¥£¡¼¥ë¥É¤Î (ɸ½à¤Ç¤Ï¤Ê¤¤) SHM_DEST ¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£ ¤³¤Î¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï IPC_STAT ¤Ç¼èÆÀ¤µ¤ì¤ë¡£
¸Æ¤Ó½Ð¤·¸µ¤ÏºÇ½ªÅª¤Ë¤Ï¥»¥°¥á¥ó¥È¤ò˺¤ì¤º¤ËÇË´þ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤½¤¦¤Ç¤Ê¤ì¤Ð¡¢¥Õ¥©¡¼¥ë¥È (fault) ¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï ¥á¥â¥ê¤«¥¹¥ï¥Ã¥× (swap) ¤Ë»Ä¤ê³¤±¤ë¡£
- IPC_INFO (Linux ¸ÇÍ)
- ¥·¥¹¥Æ¥àÁ´ÂΤǤζ¦Í¥á¥â¥ê¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢ buf ¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£ ¤³¤Î¹½Â¤ÂÎ¤Ï shminfo ·¿¤Ç¤¢¤ë (¤½¤Î¤¿¤á¥¥ã¥¹¥È¤¬É¬ÍפǤ¢¤ë)¡£ shminfo ¤Ï _GNU_SOURCE µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë <sys/shm.h> ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:
struct shminfo { unsigned long shmmax; /* ºÇÂ祻¥°¥á¥ó¥È¥µ¥¤¥º */ unsigned long shmmin; /* ºÇ¾®¥»¥°¥á¥ó¥È¥µ¥¤¥º¡£¾ï¤Ë 1 */ unsigned long shmmni; /* ºÇÂ祻¥°¥á¥ó¥È¿ô */ unsigned long shmseg; /* ¥×¥í¥»¥¹¤¬ÉղäǤ¤ë¥»¥°¥á¥ó¥È¤Î ºÇÂç¿ô¡£Ì¤»ÈÍÑ */ unsigned long shmall; /* ¶¦Í¥á¥â¥ê¤ÎºÇÂç¥Ú¡¼¥¸¿ô¡£ ¥·¥¹¥Æ¥àÁ´ÂΤǤÎÃÍ */ };
ÀßÄê shmmni, shmmax, shmall ¤Ï /proc ¤Ë¤¢¤ëƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£ ¾Ü¤·¤¯¤Ï proc(5) ¤ò»²¾È¡£ - SHM_INFO (Linux ¸ÇÍ)
- ¶¦Í¥á¥â¥ê¤¬¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤ò ³ÊǼ¤·¤¿ shm_info ¹½Â¤ÂΤòÊÖ¤¹¡£ ¤³¤Î¹½Â¤ÂΤϡ¢_GNU_SOURCE µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë <sys/shm.h> ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:
struct shm_info { int used_ids; /* ¸½ºß¸ºß¤¹¤ë¥»¥°¥á¥ó¥È¿ô */ unsigned long shm_tot; /* ¶¦Í¥á¥â¥ê¤Î¥Ú¡¼¥¸Áí¿ô */ unsigned long shm_rss; /* ¥á¥â¥ê¾å¤Ë¤¢¤ë (¥¹¥ï¥Ã¥×¤µ¤ì¤Æ ¤¤¤Ê¤¤) ¶¦Í¥á¥â¥ê¥Ú¡¼¥¸¿ô */ unsigned long shm_swp; /* ¥¹¥ï¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¶¦Í¥á¥â¥ê ¥Ú¡¼¥¸¿ô */ unsigned long swap_attempts; /* Linux 2.4 °Ê¹ß¤Ç¤Ï̤»ÈÍÑ */ unsigned long swap_successes; /* Linux 2.4 °Ê¹ß¤Ç¤Ï̤»ÈÍÑ */ };
- SHM_STAT (Linux ¸ÇÍ)
- IPC_STAT ¤ÈƱ¤¸¤¯ shmid_ds ¹½Â¤ÂΤòÊÖ¤¹¡£ ⤷¡¢ shmid °ú¤¿ô¤Ï¡¢¥»¥°¥á¥ó¥È¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¶¦Í¥á¥â¥ê ¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹ ¤Ç¤¢¤ë¡£
¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢cmd ¤Ë°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬ ¥¹¥ï¥Ã¥×¤µ¤ì¤ë¤³¤È¤òËɻߤ·¤¿¤ê¡¢µö²Ä¤·¤¿¤ê¤Ç¤¤ë:
- SHM_LOCK (Linux ¸ÇÍ)
- ¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò¥¹¥ï¥Ã¥×¤¹¤ë¤³¤È¤òËɻߤ¹¤ë¡£ ¥í¥Ã¥¯¤¬Í¸ú¤Ë¤Ê¤Ã¤¿¸å¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢ ¸ºß¤¹¤ë¤³¤È¤¬Í׵ᤵ¤ì¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤ò¥Õ¥©¡¼¥ë¥È¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¥»¥°¥á¥ó¥È¤¬¥í¥Ã¥¯¤µ¤ì¤ë¤È¡¢ ´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂΤˤª¤¤¤Æ shm_perm.mode ¥Õ¥£¡¼¥ë¥É¤Î (ɸ½àŪ¤Ç¤Ï¤Ê¤¤) SHM_LOCKED ¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£ ¤³¤Î¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï IPC_STAT ¤Ç¼èÆÀ¤µ¤ì¤ë¡£
- SHM_UNLOCK (Linux ¸ÇÍ)
- ¥»¥°¥á¥ó¥È¤Î¥í¥Ã¥¯¤ò²ò½ü¤·¡¢¥¹¥ï¥Ã¥×¡¦¥¢¥¦¥È¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£
2.6.10 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Æø¢¥×¥í¥»¥¹¤À¤±¤¬ SHM_LOCK ¤È SHM_UNLOCK ¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤¿¡£ 2.6.10 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤Ç¤¢¤Ã¤Æ¤â¼¡¤Î¾ò·ï¤òËþ¤¿¤»¤Ð ¤³¤ì¤é¤ÎÁàºî¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£¤½¤Î¾ò·ï¤È¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬¤½¤Î¥»¥°¥á¥ó¥È¤Î½êͼԤ⤷¤¯¤ÏºîÀ®¼Ô¤Î UID ¤È°ìÃפ·¡¢ (SHM_LOCK ¤Î¾ì¹ç¤Ë¤Ï) ¥í¥Ã¥¯¤¹¤ë¥á¥â¥ê¤Î¹ç·×¤¬ RLIMIT_MEMLOCK ¥ê¥½¡¼¥¹¾å¸Â (setrlimit(2) »²¾È) ¤ÎÈÏ°ÏÆâ¤ËÆþ¤Ã¤Æ¤¤¤ë¤³¤È¤Ç¤¢¤ë¡£
ÊÖ¤êÃÍ
IPC_INFO ¤È SHM_INFO Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤Î¶¦Í¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò ´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃ楨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î ¤¦¤ÁºÇÂçÃͤòÊÖ¤¹ (¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¶¦Í¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò ¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢ SHM_STAT Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ¤ë)¡£ SHM_STAT Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢ shmid ¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¶¦Í¥á¥â¥ê¥»¥°¥á¥ó¥È¤Î¼±Ê̻ҤòÊÖ¤¹¡£ ¾¤ÎÁàºî¤Ï¡¢À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤òÊÖ¤·¡¢ errno ¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
¥¨¥é¡¼
- EACCES
-
IPC_STAT ¤Þ¤¿¤Ï SHM_STAT ¤¬Í׵ᤵ¤ì¡¢ shm_perm.mode ¤¬ shmid ¤Ø¤ÎÆɤ߹þ¤ß¥¢¥¯¥»¥¹¤òµö¤·¤Æ¤ª¤é¤º¡¢ ¤«¤Ä¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬ CAP_IPC_OWNER ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
- EFAULT
- cmd °ú¤¿ô¤Ë IPC_SET ¤« IPC_STAT ¤¬»ØÄꤵ¤ì¤¿¤¬ buf ¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤¤Ê¤¤¡£
- EIDRM
- shmid ¤¬ºï½ü (remove) ¤µ¤ì¤¿¼±ÊÌ»Ò (identifier) ¤ò»Ø¤·¤Æ¤¤¤ë¡£
- EINVAL
- shmid ¤¬Í¸ú¤Ê¼±Ê̻ҤǤʤ¤¤«¡¢ cmd ¤¬Í¸ú¤Ê¥³¥Þ¥ó¥É¤Ç¤Ê¤¤¡£ ¤â¤·¤¯¤Ï¡¢ SHM_STAT Áàºî¤Î¾ì¹ç¤Ë¡¢ shmid ¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤¿¡£
- ENOMEM
- (2.6.9 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ë¤ª¤¤¤Æ) SHM_LOCK ¤¬»ØÄꤵ¤ì¡¢ ¥í¥Ã¥¯¤µ¤ì¤ëͽÄê¤Î¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º (¥í¥Ã¥¯¤µ¤ì¤ë¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¹ç·×¥Ð¥¤¥È¿ô) ¤¬¡¢ ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤Ë¤Ä¤¤¤Æ¤ÎÀ©¸Â¤òĶ¤¨¤¿¡£ ¤³¤ÎÀ©¸Â¤Ï RLIMIT_MEMLOCK ¥½¥Õ¥È»ñ¸»À©¸Â¤ÇÄêµÁ¤µ¤ì¤ë (setrlimit(2) ¤ò»²¾È)¡£
- EOVERFLOW
- IPC_STAT ¤¬»î¤ß¤é¤ì¡¢GID ¤ä UID ¤ÎÃͤ¬ buf ¤Ç»Ø¼¨¤µ¤ì¤ë¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¤Ë¤ÏÂ礲᤮¤ë¡£
- EPERM
- IPC_SET ¤« IPC_RMID ¤¬»î¤ß¤é¤ì¡¢ ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ºîÀ®¼Ô (shm_perm.cuid) ¤Ç¤â½êÍ¼Ô (shm_perm.uid) ¤Ç¤â¤Ê¤¯¡¢¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ (Linux ¤Ç¤Ï CAP_SYS_ADMIN ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£
¤Þ¤¿¤Ï (2.6.9 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç) SHM_LOCK ¤Þ¤¿¤Ï SHM_UNLOCK ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ (Linux ¤Ç¤Ï CAP_IPC_LOCK ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£ (Linux 2.6.9 °Ê¹ß¤Ç¤Ï¡¢ RLIMIT_MEMLOCK ¤¬ 0 ¤Ç¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤¤¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¡£)
½àµò
SVr4, POSIX.1-2001.Ãí°Õ
IPC_INFO, SHM_STAT, SHM_INFO Áàºî¤Ï¡¢ ipcs(8) ¥×¥í¥°¥é¥à¤Ç³ä¤êÅö¤ÆºÑ¤Î»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë »ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¾Íè¡¢¤³¤ì¤é¤ÎÁàºî¤ÏÊѹ¹¤µ¤ì¤¿¤ê¡¢ /proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£Linux ¤Ç¤Ï¡¢ shmctl(IPC_RMID) ¤ò»È¤Ã¤Æ¤¹¤Ç¤Ëºï½ü¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤ë¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò ¤¢¤ë¥×¥í¥»¥¹¤¬Éղà (attach) (shmat(2)) ¤¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤ë¡£ ¤³¤Îµ¡Ç½¤Ï¾¤Î Unix ¤Î¼ÂÁõ¤Ç¤ÏÍøÍѤǤ¤Ê¤¤¡£ °Ü¿¢À¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ì¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤¤Ç¤¢¤ë¡£
¹½Â¤ÂÎ shmid_ds Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ Linux 2.2 ¤Ç¤Ïû¤«¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤ÏŤ¯¤Ê¤Ã¤¿¡£ ¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶²¼¤Ç ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£ ¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò cmd Æâ¤Î IPC_64 ¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£
´ØÏ¢¹àÌÜ
mlock(2), setrlimit(2), shmget(2), shmop(2), capabilities(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre