[Linux manuál]
Návod, kniha: Linux Programmer's Manual
ushort cuid; /* creator user id */
ushort cgid; /* creator group id */
ushort uid; /* owner user id */
ushort gid; /* owner group id */
ushort mode; /* r/w permissions */
The mode member of the ipc_perm structure defines, with its lower
9 bits, the access permissions to the resource for a process executing an ipc
system call. The permissions are interpreted as follows:
struct ipc_perm msg_perm;
ushort msg_qnum; /* no of messages on queue */
ushort msg_qbytes; /* bytes max on a queue */
ushort msg_lspid; /* pid of last msgsnd call */
ushort msg_lrpid; /* pid of last msgrcv call */
time_t msg_stime; /* last msgsnd time */
time_t msg_rtime; /* last msgrcv time */
time_t msg_ctime; /* last change time */
struct ipc_perm sem_perm;
time_t sem_otime; /* last operation time */
time_t sem_ctime; /* last change time */
ushort sem_nsems; /* count of sems in set */
ushort semval; /* semaphore value */
short sempid; /* pid for last operation */
ushort semncnt; /* nr awaiting semval to increase */
ushort semzcnt; /* nr awaiting semval = 0 */
struct ipc_perm shm_perm;
int shm_segsz; /* size of segment */
ushort shm_cpid; /* pid of creator */
ushort shm_lpid; /* pid, last operation */
short shm_nattch; /* no. of current attaches */
time_t shm_atime; /* time of last attach */
time_t shm_dtime; /* time of last detach */
time_t shm_ctime; /* time of last change */
ipc: Mechanismy meziprocesové komunikace systému V
Originální popis anglicky: ipc - System V interprocess communication mechanismsNávod, kniha: Linux Programmer's Manual
STRUČNĚ
# include <sys/types.h> # include <sys/ipc.h> # include <sys/msg.h> # include <sys/sem.h> # include <sys/shm.h>
POPIS / INSTRUKCE
This manual page refers to the Linux implementation of the System V interprocess communication mechanisms: message queues, semaphore sets, and shared memory segments. In the following, the word resource means an instantiation of one among such mechanisms.Resource Access Permissions
For each resource, the system uses a common structure of type struct ipc_perm to store information needed in determining permissions to perform an ipc operation. The ipc_perm structure, defined by the <sys/ipc.h> system header file, includes the following members:0400 Read by user. 0200 Write by user.Bits 0100, 0010, and 0001 (the execute bits) are unused by the system. Furthermore, "write" effectively means "alter" for a semaphore set. The same system header file also defines the following symbolic constants:0040 Read by group. 0020 Write by group.0004 Read by others. 0002 Write by others.
- IPC_CREAT
- Create entry if key doesn't exist.
- IPC_EXCL
- Fail if key exists.
- IPC_NOWAIT
- Error if request must wait.
- IPC_PRIVATE
- Private key.
- IPC_RMID
- Remove resource.
- IPC_SET
- Set resource options.
- IPC_STAT
- Get resource options.
Message Queues
A message queue is uniquely identified by a positive integer (its msqid) and has an associated data structure of type struct msqid_ds, defined in <sys/msg.h>, containing the following members:- msg_perm
- ipc_perm structure that specifies the access permissions on the message queue.
- msg_qnum
- Number of messages currently on the message queue.
- msg_qbytes
- Maximum number of bytes of message text allowed on the message queue.
- msg_lspid
- ID of the process that performed the last msgsnd system call.
- msg_lrpid
- ID of the process that performed the last msgrcv system call.
- msg_stime
- Time of the last msgsnd system call.
- msg_rtime
- Time of the last msgcv system call.
- msg_ctime
- Time of the last system call that changed a member of the msqid_ds structure.
Semaphore Sets
A semaphore set is uniquely identified by a positive integer (its semid) and has an associated data structure of type struct semid_ds, defined in <sys/sem.h>, containing the following members:- sem_perm
- ipc_perm structure that specifies the access permissions on the semaphore set.
- sem_otime
- Time of last semop system call.
- sem_ctime
- Time of last semctl system call that changed a member of the above structure or of one semaphore belonging to the set.
- sem_nsems
- Number of semaphores in the set. Each semaphore of the set is referenced by a non-negative integer ranging from 0 to sem_nsems-1.
- semval
- Semaphore value: a non-negative integer.
- sempid
- ID of the last process that performed a semaphore operation on this semaphore.
- semncnt
- Number of processes suspended awaiting for semval to increase.
- semznt
- Number of processes suspended awaiting for semval to become zero.
Shared Memory Segments
A shared memory segment is uniquely identified by a positive integer (its shmid) and has an associated data structure of type struct shmid_ds, defined in <sys/shm.h>, containing the following members:- shm_perm
- ipc_perm structure that specifies the access permissions on the shared memory segment.
- shm_segsz
- Size in bytes of the shared memory segment.
- shm_cpid
- ID of the process that created the shared memory segment.
- shm_lpid
- ID of the last process that executed a shmat or shmdt system call.
- shm_nattch
- Number of current alive attaches for this shared memory segment.
- shm_atime
- Time of the last shmat system call.
- shm_dtime
- Time of the last shmdt system call.
- shm_ctime
- Time of the last shmctl system call that changed shmid_ds.
SOUVISEJÍCÍ
msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2), shmctl(2), shmdt(2), shmget(2), ftok(3)| 1993-11-01 | Linux 0.99.13 |