[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]
Technical Reference: Kernel and Subsystems, Volume 1
kmsgget Kernel Service
Purpose
Obtains a message queue identifier.
Syntax
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/stat.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int kmsgget ( key, msgflg, msqid)
key_t key;
int msgflg;
int *msqid;
Parameters
key |
Specifies either a value of IPC_PRIVATE or
an IPC key constructed by the ftok subroutine (or a similar algorithm). |
msgflg |
Specifies that the msgflg parameter is constructed
by logically ORing one or more of these values:
- IPC_CREAT
- Creates the data structure if it does not already exist.
- IPC_EXCL
- Causes the kmsgget kernel service to fail if IPC_CREAT is also set and the data structure already exists.
- S_IRUSR
- Permits the process that owns the data structure to read it.
- S_IWUSR
- Permits the process that owns the data structure to modify it.
- S_IRGRP
- Permits the process group associated with the data structure to read
it.
- S_IWGRP
- Permits the process group associated with the data structure to modify
it.
- S_IROTH
- Permits others to read the data structure.
- S_IWOTH
- Permits others to modify the data structure.
The values that begin
with S_I... are defined in the /usr/include/sys/stat.h file. They are a subset of the access permissions that apply to files.
|
msqid |
A reference parameter where a valid message-queue ID is returned
if the kmsgget kernel service is successful. |
Description
The kmsgget kernel service returns
the message-queue identifier specified by the msqid
parameter associated with the specified key parameter
value. The kmsgget kernel service provides the same
functions for user-mode processes in kernel mode as the msgget subroutine performs for kernel processes
or user-mode processes in user mode. The kmsgget service can be called by a user-mode process in
kernel mode or by a kernel process. A kernel process can also call the msgget subroutine to provide
the same function.
Execution Environment
The kmsgget kernel service can
be called from the process environment only.
Return Values
0 |
Indicates successful completion. The msqid
parameter is set to a valid message-queue identifier. |
If the kmsgget kernel service
fails, the msqid parameter is not valid and the
return code is one of these four values:
EACCES |
Indicates that a message queue ID exists for the key parameter but operation permission as specified by the msgflg parameter cannot be granted. |
ENOENT |
Indicates that a message queue ID does not exist for the key parameter and the IPC_CREAT command is not
set. |
ENOSPC |
Indicates that a message queue ID is to be created but the system-imposed
limit on the maximum number of allowed message queue IDs systemwide will
be exceeded. |
EEXIST |
Indicates that a message queue ID exists for the value specified
by the key parameter, and both the IPC_CREAT and IPC_EXCL commands are set. |
Related Information
The msgget subroutine.
Message Queue Kernel Services and Understanding System Call Execution in AIX 5L Version 5.2 Kernel Extensions and Device Support Programming Concepts.
[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home |
Legal |
Search ]