Rechercher une page de manuel
svipc
Langue: ja
Version: 1993-11-01 (openSuse - 09/10/07)
Section: 7 (Divers)
Sommaire
̾Á°
svipc - System V ¥×¥í¥»¥¹´ÖÄÌ¿®µ¡¹½½ñ¼°
# include <sys/types.h> # include <sys/ipc.h> # include <sys/msg.h> # include <sys/sem.h> # include <sys/shm.h>
ÀâÌÀ
¤³¤Î¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸¤Ï System V ¥×¥í¥»¥¹´ÖÄÌ¿®µ¡¹½¤Î Linux ¤Ë ¤ª¤±¤ë¼ÂÁõ¤òÀâÌÀ¤¹¤ë¡£ ¤³¤Î¥×¥í¥»¥¹´ÖÄÌ¿®µ¡¹½(interprocess communication mechanism)¤Ë¤Ï¡¢ ¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼(message queue)¡¢¥»¥Þ¥Õ¥©¡¼½¸¹ç(semaphore set)¡¢ ¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È(shared memory segment)¤Ê¤É¤¬¤¢¤ë¡£°Ê²¼¤Ç »ñ¸»(resource) ¤È¤¤¤¦ÍѸì¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï¤³¤ì¤é¤Îµ¡¹½¤Î¤É¤ì¤«¤ò°ÕÌ£¤¹¤ë¡£»ñ¸»¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä
¥·¥¹¥Æ¥à¤Î¤½¤ì¤¾¤ì¤Î»ñ¸»¤Ï¡¢ipc ¤Ø¤ÎÁàºî¤òµö²Ä¤¹¤ë¤«¤É¤¦¤«¤ò·èÄꤹ¤ë ¤¿¤á¤Î¾ðÊó¤ò¶¦Ä̤ι½Â¤ÂÎ struct ipc_perm ¤Ë³ÊǼ¤·¤Æ»ÈÍѤ¹¤ë¡£ ipc_perm ¹½Â¤ÂΤϡ¢¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Î <sys/ipc.h> ¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢°Ê²¼¤Î¥á¥ó¥Ð¡¼¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë: uid_t cuid; /* ºîÀ®¼Ô¤Î¥æ¡¼¥¶¡¼ID */
gid_t cgid; /* ºîÀ®¼Ô¤Î¥°¥ë¡¼¥×ID */
uid_t uid; /* ½êͼԤΥ桼¥¶¡¼ID */
gid_t gid; /* ½êͼԤΥ°¥ë¡¼¥×ID */
ushort mode; /* Æɤ߽ñ¤¤Îµö²Ä */
ipc_perm ¹½Â¤ÂΤΠmode ¥á¥ó¥Ð¡¼¤Ï°Ê²¼¤Î 9 ¥Ó¥Ã¥È¤Ç¡¢¥×¥í¥»¥¹¤Î ipc ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë ¤Ë¤è¤ë»ñ¸»¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤òÄêµÁ¤¹¤ë¡£ µö²Ä¤Ï°Ê²¼¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë:
0400 ¥æ¡¼¥¶¡¼¤Ë¤è¤ëÆɤ߹þ¤ß¡£ 0200 ¥æ¡¼¥¶¡¼¤Ë¤è¤ë½ñ¤¹þ¤ß¡£ 0040 ¥°¥ë¡¼¥×¤Ë¤è¤ëÆɤ߹þ¤ß¡£ 0020 ¥°¥ë¡¼¥×¤Ë¤è¤ë½ñ¤¹þ¤ß¡£ 0004 ¾¿Í¤Ë¤è¤ëÆɤ߹þ¤ß¡£ 0002 ¾¿Í¤Ë¤è¤ë½ñ¤¹þ¤ß¡£
¥·¥¹¥Æ¥à¤Ï¥Ó¥Ã¥È 0100, 0010, 0001 (¼Â¹Ô¥Ó¥Ã¥È) ¤Ï»ÈÍѤ·¤Ê¤¤¡£ ¤µ¤é¤Ë¡¢¥»¥Þ¥Õ¥©¡¼¤Î¾ì¹ç¤Ë¤Ï "½ñ¤¹þ¤ß(write)" ¤Ï¼ÂºÝ¤Ë¤Ï "Êѹ¹(alter)" ¤ò°ÕÌ£¤¹¤ë¡£
Ʊ¤¸¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Ë¤Ï°Ê²¼¤Î¥·¥ó¥Ü¥ë¤ÎÄêµÁ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë:
- IPC_CREAT
- ¥¡¼(key)¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤¿¤Ê¥¨¥ó¥È¥ê¤òºîÀ®¤¹¤ë¡£
- IPC_EXCL
- ¥¡¼(key)¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¼ºÇÔ¤¹¤ë¡£
- IPC_NOWAIT
- Í׵᤬ÂÔ¤¿¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤Ë¤Ê¤ë¡£
- IPC_PRIVATE
- ¥×¥é¥¤¥Ù¡¼¥È¡¦¥¡¼¡£
- IPC_RMID
- »ñ¸»¤òºï½ü¤¹¤ë¡£
- IPC_SET
- »ñ¸»¤Ë¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¡£
- IPC_STAT
- »ñ¸»¤Î¥ª¥×¥·¥ç¥ó¤ò¼èÆÀ¤¹¤ë¡£
IPC_PRIVATE ¤Ï key_t ·¿¤Ç¤¢¤ë¡£¤½¤Î¾¤ÎÁ´¤Æ¤Î¥·¥ó¥Ü¥ë¤Ï¥Õ¥é¥°¡¦¥Õ¥£¡¼¥ë¥É¤È¤·¤Æ int ÊÑ¿ô¤Ë OR ±é»»¤Ç³ÊǼ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼
¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤ÏÀµ¤ÎÀ°¿ô (msqid) ¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ <sys/msg.h> ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¹½Â¤ÂÎ struct msqid_ds ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ ¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: struct ipc_perm msg_perm;
msgqnum_t msg_qnum; /* ¥¥å¡¼¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤Î¿ô */
msglen_t msg_qbytes; /* ¥¥å¡¼¤ÎºÇÂç¥Ð¥¤¥È¿ô */
pid_t msg_lspid; /* ºÇ¸å¤Ë msgsnd(2) ¤ò¤·¤¿ PID */
pid_t msg_lrpid; /* ºÇ¸å¤Ë msgrcv(2) ¤ò¤·¤¿ PID */
time_t msg_stime; /* ºÇ¸å¤Ë msgsnd(2) ¤ò¤·¤¿»þ´Ö */
time_t msg_rtime; /* ºÇ¸å¤Ë msgrcv(2) ¤ò¤·¤¿»þ´Ö */
time_t msg_ctime; /* ºÇ¸å¤ËÊѹ¹¤µ¤ì¤¿»þ´Ö */
- msg_perm
- ¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤹ¤ë ipc_perm ¹½Â¤ÂΡ£
- msg_qnum
- ¸½ºß¡¢¤³¤Î¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Ë¤¢¤ë¥á¥Ã¥»¡¼¥¸¤Î¿ô¡£
- msg_qbytes
- ¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤¤ë¥á¥Ã¥»¡¼¥¸¤ÎºÇÂç¥Ð¥¤¥È¿ô¡£
- msg_lspid
- ºÇ¸å¤Ë msgsnd(2) ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î ID¡£
- msg_lrpid
- ºÇ¸å¤Ë msgrcv(2) ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿¥×¥í¥»¥¹¤Î ID¡£
- msg_stime
- ºÇ¸å¤Ë msgsnd(2) ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£ msg_rtime ºÇ¸å¤Ë msgcv(2) ¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£
- msg_ctime
- ºÇ¸å¤Ë msqid_ds ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤¬Êѹ¹¤µ¤ì¤¿»þ´Ö¡£
¥»¥Þ¥Õ¥©¡¼½¸¹ç
¥»¥Þ¥Õ¥©¡¼½¸¹ç¤ÏÀµ¤ÎÀ°¿ô (semid) ¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ <sys/sem.h> ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¹½Â¤ÂÎ struct semid_ds ¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ ¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: struct ipc_perm sem_perm;
time_t sem_otime; /* ºÇ¸å¤ËÁàºî¤·¤¿»þ´Ö */
time_t sem_ctime; /* ºÇ¸å¤ËÊѹ¹¤·¤¿»þ´Ö */
ulong sem_nsems; /* ½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¥»¥Þ¥Õ¥©¡¼¿ô */
- sem_perm
- ¥»¥Þ¥Õ¥©¡¼½¸¹ç¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤹ¤ë ipc_perm ¹½Â¤ÂΡ£
- sem_otime
- ºÇ¸å¤Ë semop(2) ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£
- sem_ctime
- ºÇ¸å¤Ë semctl(2) ¤ò¹Ô¤Ê¤Ã¤Æ¾åµ¤Î¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤òÊѹ¹¤¹¤ë¤«¡¢¥»¥Þ¥Õ¥©¡¼½¸¹ç¤Ë°¤¹¤ë ¥»¥Þ¥Õ¥©¡¼¤òÊѹ¹¤·¤¿»þ´Ö¡£
- sem_nsems
- ¥»¥Þ¥Õ¥©¡¼½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¥»¥Þ¥Õ¥©¡¼¤Î¿ô¡£ ½¸¹ç¤ÎÃæ¤Ë¤¢¤ë¤½¤ì¤¾¤ì¤Î¥»¥Þ¥Õ¥©¡¼¤ÏÉé¤Ç¤Ê¤¤À°¿ô¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¡¢ 0 ¤«¤é sem_nsems-1 ¤Þ¤Ç¤ÎÈÖ¹æ¤ò»ý¤Ä¡£
¥»¥Þ¥Õ¥©¡¼¤Ï struct sem ·¿¤Î¥Ç¡¼¥¿¹½Â¤ÂΤǤ¢¤ê¡¢°Ê²¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë:
int semval; /* ¥»¥Þ¥Õ¥©¡¼¤ÎÃÍ */
int sempid; /* ºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹ ID */
- semval
- ¥»¥Þ¥Õ¥©¡¼ÃÍ: Éé¤Ç¤Ê¤¤À°¿ô¡£
- sempid
- ¤³¤Î¥»¥Þ¥Õ¥©¡¼¤òºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹¤Î ID¡£
¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È
¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥È¤ÏÀµ¤ÎÀ°¿ô (shmid) ¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¡¢ <sys/shm.h> ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë struct shmid_ds ¹½Â¤ÂΤ˷ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¡£ ¤³¤Î¹½Â¤ÂΤϰʲ¼¤Î¥á¥ó¥Ð¡¼¤ò´Þ¤ó¤Ç¤¤¤ë: struct ipc_perm shm_perm;
size_t shm_segsz; /* ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º */
pid_t shm_cpid; /* ºîÀ®¼Ô¤Î¥×¥í¥»¥¹ ID */
pid_t shm_lpid; /* ºÇ¸å¤ËÁàºî¤·¤¿¥×¥í¥»¥¹ ID */
shmatt_t shm_nattch; /* ¸½ºß¡¢Éղ䷤Ƥ¤¤ë¿ô */
time_t shm_atime; /* ºÇ¸å¤ËÉղä·¤¿»þ´Ö */
time_t shm_dtime; /* ºÇ¸å¤ËʬΥ¤·¤¿»þ´Ö */
time_t shm_ctime; /* ºÇ¸å¤ËÊѹ¹¤·¤¿»þ´Ö */
- shm_perm
- ¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä¤ò»ØÄꤷ¤¿ ipc_perm ¹½Â¤ÂΡ£
- shm_segsz
- ¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥Ð¥¤¥È¿ô¡£
- shm_cpid
- ¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤òºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î ID¡£
- shm_lpid
- ºÇ¸å¤Ë shmat(2) ¤Þ¤¿¤Ï shmdt(2) ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¼Â¹Ô¤·¤¿¥×¥í¥»¥¹¤Î ID¡£
- shm_nattch
- ¤³¤Î¶¦Í¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò¥á¥â¥ê¤ËÉÕ²Ã(attach)¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¿ô¡£
- shm_atime
- ºÇ¸å¤Ë shmat(2) ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£
- shm_dtime
- ºÇ¸å¤Ë shmdt(2) ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿»þ´Ö¡£
- shm_ctime
- ºÇ¸å¤Ë shmctl(2) ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò¹Ô¤Ê¤Ã¤Æ¡¢ shmid_ds ¹½Â¤ÂΤòÊѹ¹¤·¤¿»þ´Ö¡£
´ØÏ¢¹àÌÜ
msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2), shmctl(2), shmdt(2), shmget(2), ftok(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre