[  Next Article  |
Previous Article  |
Book Contents |
Library Home |
Legal |
Search ]
Kernel and Subsystems Technical Reference, 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. 
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. | 
Implementation Specifics
The kmsgget kernel service is part of Base 
Operating System (BOS) Runtime.
Related Information
The msgget subroutine.
Message Queue Kernel 
Services 
and Understanding System 
Call 
Execution in AIX Kernel Extensions and Device Support Programming Concepts.
[  Next Article  |
Previous Article  |
Book Contents |
Library Home |
Legal |
Search ]