ipc

Autres langues

Langue: ru

Autres versions - même langue

Version: 1993-11-01 (openSuse - 09/10/07)

Autres sections - même nom

Section: 5 (Format de fichier)

éíñ

ipc - ÍÅÈÁÎÉÚÍÙ ÍÅÖÐÒÏÃÅÓÓÎÏÇÏ ×ÚÁÉÍÏÄÅÊÓÔ×ÉÑ 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: ÏÞÅÒÅÄÉ ÓÏÏÂÝÅÎÉÊ, ÓÐÉÓËÉ ÓÅÍÁÆÏÒÏ× É ÓÅÇÍÅÎÔÙ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ. äÁÌÅÅ, ÓÌÏ×Ï ÒÅÓÕÒÓ ÏÚÎÁÞÁÅÔ ÓÕÝÎÏÓÔØ, ÓÏÚÄÁÎÎÕÀ × ÒÅÚÕÌØÔÁÔÅ ÒÁÂÏÔÙ ÏÄÎÏÇÏ ÉÚ ÜÔÉÈ ÍÅÈÁÎÉÚÍÏ×.

ðÒÁ×Á ÄÏÓÔÕÐÁ Ë ÒÅÓÕÒÓÕ

äÌÑ ËÁÖÄÏÇÏ ÒÅÓÕÒÓÁ ÓÉÓÔÅÍÁ ÉÓÐÏÌØÚÕÅÔ ÏÂÏÂÝÅÎÎÕÀ ÓÔÒÕËÔÕÒÕ ÔÉÐÁ struct ipc_perm ÄÌÑ ÈÒÁÎÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ, ËÏÔÏÒÁÑ ÎÅÏÂÈÏÄÉÍÁ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÐÒÁ× ÎÁ ×ÙÐÏÌÎÅÎÉÅ ËÁËÏÊ-ÌÉÂÏ ÏÐÅÒÁÃÉÉ ipc. óÔÒÕËÔÕÒÁ ipc_perm ÏÐÒÅÄÅÌÑÅÔÓÑ × ÚÁÇÏÌÏ×ÏÞÎÏÍ ÆÁÊÌÅ <sys/ipc.h> É ÓÏÄÅÒÖÉÔ ÓÌÅÄÕÀÝÉÅ ÐÏÌÑ:


        ushort cuid;    
/* ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÌØÚÏ×ÁÔÅÌÑ, ÓÏÚÄÁ×ÛÅÇÏ ÒÅÓÕÒÓ */

        ushort cgid;    
/* ÉÄÅÎÔÉÆÉËÁÔÏÒ ÇÒÕÐÐÙ, ÓÏÚÄÁ×ÛÅÊ ÒÅÓÕÒÓ */

        ushort uid;
/* ÉÄÅÎÔÉÆÉËÁÔÏÒ ×ÌÁÄÅÌØÃÁ */

        ushort gid;
/* ÉÄÅÎÔÉÆÉËÁÔÏÒ ÇÒÕÐÐÙ */

        ushort mode;
/* ÐÒÁ×Á ÎÁ ÞÔÅÎÉÅ/ÚÁÐÉÓØ */

÷ ÐÏÌÅ mode ÓÔÒÕËÔÕÒÙ ipc_perm ÒÁÂÏÞÉÍÉ Ñ×ÌÑÀÔÓÑ ÍÌÁÄÛÉÅ 9 ÂÉÔÏ× É ÐÒÅÄÓÔÁ×ÌÑÀÔ ÓÏÂÏÊ ÐÒÁ×Á ÄÏÓÔÕÐÁ Ë ÒÅÓÕÒÓÕ ÄÌÑ ÐÒÏÃÅÓÓÁ, ÓÄÅÌÁ×ÛÅÇÏ ipc ×ÙÚÏ×. ðÒÁ×Á ÉÎÔÅÒÐÒÅÔÉÒÕÀÔÓÑ ÔÁË:


        0400    þÔÅÎÉÅ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ

        0200    úÁÐÉÓØ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ



        0040    þÔÅÎÉÅ ÄÌÑ ÇÒÕÐÐÙ

        0020    úÁÐÉÓØ ÄÌÑ ÇÒÕÐÐÙ



        0004    þÔÅÎÉÅ ÄÌÑ ÄÒÕÇÉÈ

        0002    úÁÐÉÓØ ÄÌÑ ÄÒÕÇÉÈ

âÉÔÙ 0100, 0010 É 0001 (ÂÉÔÙ ×ÙÐÏÌÎÅÎÉÑ) ÓÉÓÔÅÍÏÊ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ. ëÒÏÍÅ ÔÏÇÏ "ÚÁÐÉÓØ" ÄÌÑ ÓÐÉÓËÁ ÓÅÍÁÆÏÒÏ× ÆÁËÔÉÞÅÓËÉ ÏÚÎÁÞÁÅÔ "ÉÚÍÅÎÅÎÉÅ".

÷ ÔÏÍ ÖÅ ÚÁÇÏÌÏ×ÏÞÎÏÍ ÆÁÊÌÅ ÔÁËÖÅ ÏÐÒÅÄÅÌÑÀÔÓÑ ÓÌÅÄÕÀÝÉÅ ÓÉÍ×ÏÌØÎÙÅ ËÏÎÓÔÁÎÔÙ:

IPC_CREAT
óÏÚÄÁÔØ ÚÁÐÉÓØ, ÅÓÌÉ ËÌÀÞ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ.
IPC_EXCL
ïÛÉÂËÁ, ÅÓÌÉ ËÌÀÞ ÓÕÝÅÓÔ×ÕÅÔ.
IPC_NOWAIT
ïÛÉÂËÁ, ÅÓÌÉ ÚÁÐÒÏÓ ÄÏÌÖÅÎ ÖÄÁÔØ.
IPC_PRIVATE
ìÉÞÎÙÊ ËÌÀÞ.
IPC_RMID
õÄÁÌÉÔØ ÒÅÓÕÒÓ.
IPC_SET
õÓÔÁÎÏ×ÉÔØ ÏÐÃÉÉ ÒÅÓÕÒÓÁ.
IPC_STAT
ðÏÌÕÞÉÔØ ÏÐÃÉÉ ÒÅÓÕÒÓÁ.

úÁÍÅÔÉÍ, ÞÔÏ IPC_PRIVATE ÉÍÅÅÔ ÔÉÐ key_t, × ÔÏ ×ÒÅÍÑ ËÁË ×ÓÅ ÏÓÔÁÌØÎÙÅ ÓÉÍ×ÏÌØÎÙÅ ËÏÎÓÔÁÎÔÙ Ñ×ÌÑÀÔÓÑ ÐÏÌÑÍÉ-ÆÌÁÇÁÍÉ, ÄÌÑ ËÏÔÏÒÙÈ ÍÏÖÅÔ ×ÙÐÏÌÎÑÔØÓÑ ÏÐÅÒÁÃÉÑ ÌÏÇÉÞÅÓËÏÇÏ ÓÌÏÖÅÎÉÑ × ÐÅÒÅÍÅÎÎÕÀ ÔÉÐÁ int.

ïÞÅÒÅÄÉ óÏÏÂÝÅÎÉÊ

ïÞÅÒÅÄØ ÓÏÏÂÝÅÎÉÊ ÉÄÅÎÔÉÆÉÃÉÒÕÅÔÓÑ ÕÎÉËÁÌØÎÙÍ ÐÏÌÏÖÉÔÅÌØÎÙÍ ÃÅÌÙÍ ÞÉÓÌÏÍ (msqid), Ó×ÑÚÁÎÎÙÍ ÓÏ ÓÔÒÕËÔÕÒÏÊ ÄÁÎÎÙÈ ÔÉÐÁ struct msqid_ds, ËÏÔÏÒÁÑ ÏÐÒÅÄÅÌÑÅÔÓÑ × ÚÁÇÏÌÏ×ÏÞÎÏÍ ÆÁÊÌÅ <sys/msg.h>, É ËÏÔÏÒÁÑ ÓÏÄÅÒÖÉÔ ÓÌÅÄÕÀÝÉÅ ÐÏÌÑ:


        struct ipc_perm msg_perm;


        ushort msg_qnum;        
/* ËÏÌÉÞÅÓÔ×Ï ÓÏÏÂÝÅÎÉÊ × ÏÞÅÒÅÄÉ */

        ushort msg_qbytes;      
/* ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÂÁÊÔ × ÏÞÅÒÅÄÉ */

        ushort msg_lspid;       
/* pid, ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ, ×ÙÐÏÌÎÉ×ÛÅÇÏ ÐÏÓÌÅÄÎÉÊ ×ÙÚÏ× msgsnd */

        ushort msg_lrpid;       
/* pid, ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ, ×ÙÐÏÌÎÉ×ÛÅÇÏ ÐÏÓÌÅÄÎÉÊ ×ÙÚÏ× msgrcv */

        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.
msg_lrpid
éÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ, ËÏÔÏÒÙÊ ×ÙÐÏÌÎÉÌ ÐÏÓÌÅÄÎÉÊ ÓÉÓÔÅÍÎÙÊ ×ÙÚÏ× msgrcv.
msg_stime
÷ÒÅÍÑ, ËÏÇÄÁ ÂÙÌ ×ÙÐÏÌÎÅÎ ÐÏÓÌÅÄÎÉÊ ÓÉÓÔÅÍÎÙÊ ×ÙÚÏ× msgsnd.
msg_rtime
÷ÒÅÍÑ, ËÏÇÄÁ ÂÙÌ ×ÙÐÏÌÎÅÎ ÐÏÓÌÅÄÎÉÊ ÓÉÓÔÅÍÎÙÊ ×ÙÚÏ× msgcv.
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
ëÏÌÉÞÅÓÔ×Ï ÓÅÍÁÆÏÒÏ× × ÓÐÉÓËÅ. óÅÍÁÆÏÒÙ × ÓÐÉÓËÅ ÎÕÍÅÒÕÀÔÓÑ ÐÏÌÏÖÉÔÅÌØÎÙÍÉ ÃÅÌÙÍÉ ÞÉÓÌÁÍÉ ÏÔ ÎÕÌÑ ÄÏ sem_nsems-1.

óÅÍÁÆÏÒ -- ÜÔÏ ÓÔÒÕËÔÕÒÁ ÄÁÎÎÙÈ ÔÉÐÁ struct sem, ËÏÔÏÒÁÑ ÓÏÄÅÒÖÉÔ ÓÌÅÄÕÀÝÉÅ ÐÏÌÑ:


        ushort semval;  
/* ÚÎÁÞÅÎÉÅ ÓÅÍÁÆÏÒÁ */

        short sempid;   
/* pid ÐÏÓÌÅÄÎÅÊ ÏÐÅÒÁÃÉÉ */

        ushort semncnt; 
/* ëÏÌÉÞÅÓÔ×Ï ÏÖÉÄÁÀÝÉÈ Õ×ÅÌÉÞÅÎÉÑ semval */

        ushort semzcnt; 
/* ëÏÌÉÞÅÓÔ×Ï ÏÖÉÄÁÀÝÉÈ ÕÓÔÁÎÏ×ËÉ semval × ÎÕÌØ */

semval
úÎÁÞÅÎÉÅ ÓÅÍÁÆÏÒÁ: ÎÅÏÔÒÉÃÁÔÅÌØÎÏÅ ÃÅÌÏÅ ÞÉÓÌÏ.
sempid
éÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÓÌÅÄÎÅÇÏ ÐÒÏÃÅÓÓÁ, ËÏÔÏÒÙÊ ÒÁÂÏÔÁÌ Ó ÄÁÎÎÙÍ ÓÅÍÁÆÏÒÏÍ.
semncnt
ëÏÌÉÞÅÓÔ×Ï ÐÒÏÃÅÓÓÏ×, ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÈ × ÏÖÉÄÁÎÉÉ Õ×ÅÌÉÞÅÎÉÑ semval.
semznt
ëÏÌÉÞÅÓÔ×Ï ÐÒÏÃÅÓÓÏ×, ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÈ × ÏÖÉÄÁÎÉÉ ÕÓÔÁÎÏ×ËÉ ÚÎÁÞÅÎÉÑ semval × ÎÕÌØ.

óÅÇÍÅÎÔÙ òÁÚÄÅÌÑÅÍÏÊ ðÁÍÑÔÉ

óÅÇÍÅÎÔ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ ÉÄÅÎÔÉÆÉÃÉÒÕÅÔÓÑ ÕÎÉËÁÌØÎÙÍ ÐÏÌÏÖÉÔÅÌØÎÙÍ ÃÅÌÙÍ ÞÉÓÌÏÍ (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
éÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ, ËÏÔÏÒÙÊ ÓÏÚÄÁÌ ÒÁÚÄÅÌÑÅÍÙÊ ÓÅÇÍÅÎÔ ÐÁÍÑÔÉ.
shm_lpid
éÄÅÎÔÉÆÉËÁÔÏÒ ÐÏÓÌÅÄÎÅÇÏ ÐÒÏÃÅÓÓÁ, ËÏÔÏÒÙÊ ÄÅÌÁÌ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù shmat ÉÌÉ shmdt.
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)

ðåòå÷ïä

ðÅÒÅ×£Ì Ó ÁÎÇÌÉÊÓËÏÇÏ ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× <corochoone@perm.ru> 2004