Content-type: text/html Man page of shmat

shmat

Section: System Calls (2)
Index Return to Main Contents
 

NAME

shmat - Attaches a shared memory region  

SYNOPSIS

#include <sys/shm.h>

void *shmat(
        int shmid,
        const void *shmaddr,
        int shmflg);

If programs are being developed for multiple platforms, application developers may want to specify #include statements for <sys/types.h> and <sys/ipc.h> before the one for <sys/shm.h>. The additional #include statements are not required on Tru64 UNIX systems or by ISO or X/Open standards, but may be required on other vendors' systems that conform to these standards.  

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows:

shmat():  XPG4, XPG4-UNIX

Refer to the standards(5) reference page for more information about industry standards and associated tags.  

PARAMETERS

Specifies the ID for the shared memory region. The ID is typically returned by a previous shmget() function. Specifies the virtual address at which the process wants to attach the shared memory region. The process can also specify 0 (zero) to have the kernel select an appropriate address. Specifies the attach flags. Possible values are: If the addr parameter is not 0 (zero), the kernel rounds off the address, if necessary. If the calling process has read permission, the kernel attaches the region for reading only.  

DESCRIPTION

The shmat() function attaches the shared memory region identified by the shmid parameter to the virtual address space of the calling process. For the addr parameter, the process can specify either an explicit address or 0 (zero), to have the kernel select the address. If an explicit address is used, the process can set the SHM_RND flag to have the kernel round off the address, if necessary.

Access to the shared memory region is determined by the operation permissions in the shm_perm.mode member in the region's shmid_ds structure. The low-order bits in shm_perm.mode are interpreted as follows:

Read by user Write by user Read by group Write by group Read by others Write by others

The calling process is granted read and write permissions on the attached region if at least one of the following is true: The effective user ID of the process is superuser. The effective user ID of the process is equal to shm_perm.cuid or shm_perm.uid and bit 0600 in shm_perm.mode is set. The effective group ID of the process is equal to shm_perm.cgid or shm_perm.gid and bit 0060 in shm_perm.mode is set. Bit 0006 in shm_perm.mode is set.

If the process has read permission, it can attach the region as read only by setting the SHM_RDONLY flag.

 

RETURN VALUES

Upon successful completion, shmat() increments the value of shm_nattach in the data structure associated with the shared memory ID of the attached shared memory segment and returns the segment's start address. If the shmat() function fails, the shared memory region is not attached, a value of -1 is returned, and errno is set to indicate the error.  

ERRORS

The shmat() function sets errno to the specified values for the following conditions: The calling process does not have the appropriate privilege. The shmid parameter does not specify a valid shared memory region ID; the addr parameter is not 0 (zero) and not a valid address; or the addr parameter is not 0 (zero) and not a valid address, and SHM_RND is not set.

[Digital]  The shmid refers to a segmented shared memory region and the addr parameter is not aligned at SSM_SIZE (that is, (addr % SSM_SIZE) != 0). An attempt to attach a shared memory region exceeded the maximum number of attached regions allowed for any one process. There was not enough data space available to attach the shared memory region.
[Digital]  The shmid refers to a segmented shared memory region whose size is not a multiple of SSM_SIZE and where not enough data space is available for the rounded-up size.
 

RELATED INFORMATION

Functions: exec(2), exit(2), fork(2), shmctl(2), shmdt(2), shmget(2), sysconfig(8)

Data structures: shmid_ds(4)

Standards: standards(5) delim off


 

Index

NAME
SYNOPSIS
STANDARDS
PARAMETERS
DESCRIPTION
RETURN VALUES
ERRORS
RELATED INFORMATION

This document was created by man2html, using the manual pages.
Time: 02:40:17 GMT, October 02, 2010