成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ipc 中文man頁面

系統
本手冊頁涉及 System V 進程間通信機制在 Linux 下的實現: 消息隊列, 信號燈集合, 以及共享內存段. 下面提到 資源 時, 就是指上面這些通信機制中的一種.

NAME

ipc - System V 進程間通信機制  

SYNOPSIS 總覽

# include <sys/types.h>
# include <sys/ipc.h>
# include <sys/msg.h>
# include <sys/sem.h>
# include <sys/shm.h>

DESCRIPTION

本手冊頁涉及 System V 進程間通信機制在 Linux 下的實現: 消息隊列, 信號燈集合, 以及共享內存段. 下面提到 資源 時, 就是指上面這些通信機制中的一種.  

資源訪問權限

對每個資源, 系統用一個共有的 struct ipc_perm 結構來存放權限信息, 以確定一個 ipc 操作是否可訪問該資源. 在 <sys/ipc.h> 中定義了 ipc_perm, 其成員如下:

       ushort cuid;     /* 創建者 uid */

       ushort cgid;     /* 創建者 gid */

       ushort uid; /* 所有者 uid */

       ushort gid; /* 所有者 gid */

       ushort mode; /* 讀/寫權限 */
 

結構 ipc_perm 的成員 mode 的低九位定義了對該資源的訪問許可, 以確定一個執行了 ipc 系統調用的進程能否訪問該資源. 其解釋如下:

        0400    用戶可讀.
        0200    用戶可寫.

        0040    組成員可讀.
        0020    組成員可寫.

        0004    其他用戶可讀.
        0002    其他用戶可寫.

系統沒有使用執行位 0100, 0010 和 0001. 另外, 這里的 "可寫" 等效于信號燈集合里的 "可更改".

<sys/ipc.h> 系統頭文件里還定義了如下符號常數:

IPC_CREAT
如果 key 不存在就創建.
IPC_EXCL
如果 key 已經存在則失敗.
IPC_NOWAIT
如果請求必須等待, 產生錯誤.
IPC_PRIVATE
私有 key.
IPC_RMID
刪除資源.
IPC_SET
設置資源選項.
IPC_STAT
取得資源選項.

請注意 IPC_PRIVATE 是一個 key_t 類型, 而別的符號常數都是標志域,它們的可以或( OR )在一起形成 int 類型.  

消息隊列

消息隊列由正整數 (它的 msqid) 唯一標識, 其結構體 struct msquid_ds<sys/msg.h> 中定義, 包含如下成員:

       struct ipc_perm msg_perm;
       ushort msg_qnum;         /* 隊列中消息數目 */

       ushort msg_qbytes;       /* 一條隊列最大字節數 */

       ushort msg_lspid;        /* 上一次 msgsnd 調用的 pid */

       ushort msg_lrpid;        /* 上一次 msgrcv 調用的 pid */

       time_t msg_stime;        /* 上一次 msgsnd 的時間 */

       time_t msg_rtime;        /* 上一次 msgrcv 的時間 */

       time_t msg_ctime;        /* 上一次修改時間 */
 

msg_perm
ipc_perm 結構, 指明了對該消息隊列的訪問權限.
msg_qnum
該隊列當前的消息總數.
msg_qbytes
該隊列所允許的消息正文最大字節總數.
msg_lspid
最后做 msgsnd 系統調用的進程的 ID.
msg_lrpid
最后做 msgrcv 系統調用的進程的 ID.
msg_stime
最近做 msgsnd 系統調用的時間.
msg_rtime
最近做 msgrcv 系統調用的時間.
msg_ctime
最后一次改變 msqid_ds 結構成員的時間.

信號燈集合

信號燈集合由正整數 (它的 semid) 唯一標識, 并有一個與之關聯的結構體 struct semid_ds 它在 <sys/sem.h> 中定義, 包含如下成員:

       struct ipc_perm sem_perm;
       time_t sem_otime;        /* 上一次操作的時間 */

       time_t sem_ctime;        /* 上一次修改的時間 */

       ushort sem_nsems;        /* 集合中信號燈數目 */
 

sem_perm
ipc_perm 結構, 指明對該信號燈集合的訪問權限.
sem_otime
最近做 semop 系統調用的時間.
sem_ctime
最近做 semctl 系統調用的時間, 該調用修改了上面結構的一個成員或者改變了屬于該集合的一個信號燈.
sem_nsems
該信號燈集合的信號燈數目. 集合中每個信號燈都可以用從 0sem_nsems-1 的一個非負整數來引用.

一個信號燈就是一個 struct sem 結構, 包含如下成員:

       ushort semval;   /* 信號燈值 */

       short sempid;    /* 上一次操作的進程的 pid */

       ushort semncnt;  /* 等待增加 semval 值的進程數目 */

       ushort semzcnt;  /* 等待 semval = 0 的進程數目 */
 

semval
該信號燈值,是一個非負整數.
sempid
最后一個對該信號燈做操作的進程 ID.
semncnt
等待增加 semval 的進程數.
semznt
等待 semval 變成 0 的進程數.

共享內存段

共享內存段由正整數 (它的 shmid) 唯一標識, 有一個關聯的結構類型 struct shmid_ds<sys/shm.h> 中定義, 包含如下成員:

       struct ipc_perm shm_perm;
       int shm_segsz;   /* 段尺寸 */

       ushort shm_cpid;         /* 創建者 pid */

       ushort shm_lpid;         /* 上一次操作的進程的 pid */

       short 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 或者 shmdt 系統調用的進程 ID.
shm_nattch
當前對該共享內存段的活躍連接數.
shm_atime
最后做 shmat 系統調用的時間.
shm_dtime
最后做 shmdt 系統調用的時間.
shm_ctime
最后做 shmctl 系統調用的時間, 如果該調用改變了 shmid_ds.

又見

ftok(3), msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2), shmctl(2), shmget(2), shmdt(2).

#p#

NAME

ipc - System V IPC system calls  

SYNOPSIS

int ipc(unsigned int call, int first, int second, int third, void *ptr, long fifth);  

DESCRIPTION

ipc() is a common kernel entry point for the System V IPC calls for messages, semaphores, and shared memory. call determines which IPC function to invoke; the other arguments are passed through to the appropriate call.

User programs should call the appropriate functions by their usual names. Only standard library implementors and kernel hackers need to know about ipc().  

CONFORMING TO

ipc() is Linux specific, and should not be used in programs intended to be portable.  

SEE ALSO

msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2), shmctl(2), shmdt(2), shmget(2)

責任編輯:韓亞珊 來源: http://cmpp.linuxforum.net
相關推薦

2011-08-15 10:21:09

man中文man

2011-08-24 16:48:36

man中文man

2011-08-11 16:11:49

at中文man

2011-08-25 10:21:56

man.conf中文man

2011-08-11 15:03:21

ACCESS中文man

2011-08-11 15:28:43

ali中文man

2011-08-11 16:31:49

biff中文man

2011-08-11 17:16:43

cce中文man

2011-08-11 18:05:04

chvt中文man

2011-08-11 18:13:07

clear中文man

2011-08-12 09:13:02

df中文man

2011-08-12 09:38:06

dircolors中文man

2011-08-12 09:44:37

dirname中文man

2011-08-12 10:20:02

echo中文man

2011-08-12 10:25:55

eject中文man

2011-08-12 11:07:19

git中文man

2011-08-12 13:18:19

head中文man

2011-08-12 13:49:23

hostid中文man

2011-08-12 13:54:46

hostname中文man

2011-08-12 14:53:56

kill中文man
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av片在线免费看 | www亚洲精品| 九九在线视频 | 在线观看国产wwwa级羞羞视频 | 成人小视频在线免费观看 | 久综合| 欧美成人精品一区二区男人看 | 色综合久久88色综合天天 | 波多野吉衣久久 | 日韩在线不卡 | 久久成人精品视频 | 亚洲国产一区二区三区在线观看 | 久精品久久 | 成人免费影院 | 亚洲精品一区二区三区丝袜 | 国产精品视频一二三区 | 欧洲精品在线观看 | 国产精品久久久久久久久免费桃花 | 亚洲日韩中文字幕一区 | 99久久久国产精品 | 国产欧美精品区一区二区三区 | 日韩欧美大片在线观看 | 亚洲精品国产第一综合99久久 | 亚洲精品久久久久久国产精华液 | 国产精品久久久久久久久久久久久 | 成人国产精品一级毛片视频毛片 | 日韩一区二区三区在线观看视频 | 一区二区三区网站 | 91精品久久久久久久99 | 国产电影一区二区在线观看 | 综合色婷婷 | 免费精品| 亚洲精品乱码久久久久久按摩观 | 在线观看免费高清av | 国产9 9在线 | 中文 | 亚洲国产欧美在线人成 | 999精品在线| 精精国产xxxx视频在线野外 | 欧美日韩一区二区在线观看 | 性色av网站 | 91精品久久久久久久久中文字幕 |