Section: Manual del programador de Linux (2)
Updated: 28 noviembre 1993
Index Return to Main
Contents
shmctl - control de memoria compartida
#include <sys/shm.h>
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
permite al usuario recibir información sobre un segmento de memoria compartida, establecer el dueño, grupo y permisos del segmento, así como destruirlo. La información sobre el segmento identificado como shmid se devuelve en una estructura shmid_ds:
struct shmid_ds { struct ipc_perm shm_perm; /* permisos de operación */ int shm_segsz; /* tamaño del segmento (bytes) */ time_t shm_atime; /* tiempo de la última unión */ time_t shm_dtime; /* tiempo de la última separación */ time_t shm_ctime; /* tiempo del último cambio */ unsigned short shm_cpid; /* pid del creador */ unsigned short shm_lpid; /* pid del último operador */ short shm_nattch; /* nº de uniones actuales */ /* Los siguientes son privados */ unsigned short shm_npages; /* tamaño del segmento (páginas) */ unsigned long *shm_pages; struct shm_desc *attaches; /* descriptores para uniones */ };
Los campos del miembro shm_perm pueden ser:
struct ipc_perm { key_t key; ushort uid; /* euid y egid del dueño */ ushort gid; ushort cuid; /* euid y egid del creador */ ushort cgid; ushort mode; /* 9 bits más bajos de los modos de acceso */ ushort seq; /* número de secuencia */ };
Están disponibles los siguientes cmds:
El usuario debe asegurarse de que el segmento se destruye al final; de lo contrario, las páginas de dicho segmento que se cargaron en memoria al producir un fallo de página, permanecerán en memoria o en el fichero de intercambio.
Además, el superusuario puede impedir o permitir que un
segmento de memoria compartida pase al fichero de intercambio con
los siguientes comandos (sólo Linux):
Las llamadas de control IPC_INFO, SHM_STAT y SHM_INFO son usadas por el programa ipcs(8) para proporcionar información sobre los recursos asignados. En el futuro, éstos pueden ser modificados según se necesite o movidos a un sistema de ficheros proc.
En caso de éxito se devuelve 0, en caso de error -1.
En caso de error, errno tomará uno de los siguientes valores:
SVr4, SVID. SVr4 documenta las condiciones de error adicionales EINVAL, ENOENT, ENOSPC, ENOMEM, EEXIST. Ni SVr4 ni SVID documentan una condición de error EIDRM.
(2), shmop(2)
This document was created by man2html, using
the manual pages.
Time: 06:16:21 GMT, January 22, 2005