Home
Search all pages
Subjects
By activity
Professions, Sciences, Humanities, Business, ...
User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...
Text Strings
Conversions, tests, processing, manipulation,...
Math
Integer, Floating point, Matrix, Statistics, Boolean, ...
Processing
Algorithms, Memory, Process control, Debugging, ...
Stored Data
Data storage, Integrity, Encryption, Compression, ...
Communications
Networks, protocols, Interprocess, Remote, Client Server, ...
Hard World Timing, Calendar and Clock, Audio, Video, Printer, Controls...
File System
Management, Filtering, File & Directory access, Viewers, ...
|
|
|
RocketLink!--> Man page versions:
OpenBSD
FreeBSD
NetBSD
Others
SHMAT(2) OpenBSD Programmer's Manual SHMAT(2)
NAME
shmat, shmdt - map/unmap shared memory
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
void *
shmat(int shmid, const void *shmaddr, int shmflg);
int
shmdt(const void *shmaddr);
DESCRIPTION
shmat() maps the shared memory segment associated with the shared memory
identifier shmid into the address space of the calling process. The ad-
dress at which the segment is mapped is determined by the shmaddr parame-
ter. If it is equal to 0, the system will pick an address itself. Other-
wise, an attempt is made to map the shared memory segment at the address
shmaddr specifies. If SHM_RND is set in shmflg, the system will round the
address down to a multiple of SHMLBA bytes (SHMLBA is defined in
<sys/shm.h> ).
A shared memory segment can be mapped read-only by specifying the
SHM_RDONLY flag in shmflg.
shmdt() unmaps the shared memory segment that is currently mapped at
shmaddr from the calling process' address space. shmaddr must be a value
returned by a prior shmat() call. A shared memory segment will remain ex-
istent until it is removed by a call to shmctl(2) with the IPC_RMID com-
mand.
RETURN VALUES
shmat() returns the address at which the shared memory segment has been
mapped into the calling process' address space when successful, shmdt()
returns 0 on successful completion. Otherwise, a value of -1 is returned,
and the global variable errno is set to indicate the error.
ERRORS
shmat() will fail if:
[EACCES] The calling process has no permission to access this shared
memory segment.
[ENOMEM] There is not enough available data space for the calling
process to map the shared memory segment.
[EINVAL] shmid is not a valid shared memory identifier.
shmaddr specifies an illegal address.
[EMFILE] The number of shared memory segments has reached the sys-
tem-wide limit.
shmdt() will fail if:
[EINVAL] shmaddr is not the start address of a mapped shared memory
segment.
SEE ALSO
mmap(2), shmctl(2), shmget(2)
OpenBSD 2.6 August 17, 1995 1
Source: OpenBSD 2.6 man pages. Copyright: Portions are copyrighted by BERKELEY SOFTWARE DESIGN, INC., The Regents of the University of California, Massachusetts Institute of Technology, Free Software Foundation, FreeBSD Inc., and others. |
(Corrections, notes, and links courtesy of RocketAware.com)
Up to: Memory blocks (Sometimes called "Byte Strings") - Memory blocks. Allocated, shared, mmaped, kernel et al
RocketLink!--> Man page versions:
OpenBSD
FreeBSD
NetBSD
Others
Rapid-Links:
Search | About | Comments | Submit Path: RocketAware > man pages >
shmat.2/
RocketAware.com is a service of Mib Software Copyright 1999, Forrest J. Cavalier III. All Rights Reserved. We welcome submissions and comments
|