The Open Group Base Specifications Issue 8
IEEE Std 1003.1-2024
Copyright © 2001-2024 The IEEE and The Open Group

NAME

sys/shm.h — XSI shared memory facility

SYNOPSIS

[XSI] [Option Start] #include <sys/shm.h> [Option End]

DESCRIPTION

The <sys/shm.h> header shall define the following symbolic constants:

SHM_RDONLY
Attach read-only (else read-write).
SHM_RND
Round attach address to SHMLBA.
SHMLBA
Segment low boundary address multiple.

The <sys/shm.h> header shall define the symbolic constant SHM_FAILED which shall evaluate to the same value as ((void *)(intptr_t)-1).

The <sys/shm.h> header shall define the type intptr_t as described in <stdint.h>.

The <sys/shm.h> header shall define the following data type through typedef:

shmatt_t
Unsigned integer used for the number of current attaches that shall be able to store values at least as large as a type unsigned short.

The <sys/shm.h> header shall define the shmid_ds structure, which shall include the following members:

struct ipc_perm shm_perm   Operation permission structure.
size_t          shm_segsz  Size of segment in bytes.
pid_t           shm_lpid   Process ID of last shared memory operation.
pid_t           shm_cpid   Process ID of creator.
shmatt_t        shm_nattch Number of current attaches.
time_t          shm_atime  Time of last shmat().
time_t          shm_dtime  Time of last shmdt().
time_t          shm_ctime  Time of last change by shmctl().

The <sys/shm.h> header shall define the pid_t, size_t, and time_t types as described in <sys/types.h>.

The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

void *shmat(int, const void *, int);
int   shmctl(int, int, struct shmid_ds *);
int   shmdt(const void *);
int   shmget(key_t, size_t, int);

In addition, the <sys/shm.h> header shall include the <sys/ipc.h> header.


The following sections are informative.

APPLICATION USAGE

None.

RATIONALE

None.

FUTURE DIRECTIONS

None.

SEE ALSO

<sys/ipc.h>, <sys/types.h>

XSH shmat, shmctl, shmdt, shmget

CHANGE HISTORY

First released in Issue 2. Derived from System V Release 2.0.

Issue 5

The type of shm_segsz is changed from int to size_t.

Issue 7

Austin Group Interpretation 1003.1-2001 #179 is applied.

This reference page is clarified with respect to macros and symbolic constants.

Issue 8

Austin Group Defect 1239 is applied, adding SHM_FAILED and requiring <sys/shm.h> to define intptr_t.

End of informative text.

 

return to top of page

UNIX® is a registered Trademark of The Open Group.
POSIX™ is a Trademark of The IEEE.
Copyright © 2001-2024 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]