Sharedmemory

Páginas: 15 (3570 palabras) Publicado: 4 de noviembre de 2012
-------------------------------------------------
shm_open (3) - página Linux hombre
Nombre
shm_open, shm_unlink - Crear / abrir o POSIX desvincular objetos de memoria compartida
Sinopsis
# Include < sys / mman.h > 
# include < sys / stat.h > / * Para el modo de constantes * / # include < fcntl.h > / * Para O_ * constantes * / 

int shm_open (const char * nombre ,int oflag , mode_t modo);
int shm_unlink (const char * nombre );
Enlace con -lrt .
Descripción
shm_open () crea y abre una nueva o abra una existente, POSIX objeto de memoria compartida. Un objeto POSIX de memoria compartida es en efecto un mango que puede ser utilizado por procesos no relacionados con mmap (2) de la misma región de memoria compartida. El shm_unlink () realiza la operación inversa,la eliminación de un objeto previamente creado por shm_open().
La operación de shm_open () es análoga a la de abierto (2) . nombre especifica el objeto de memoria compartida que se crea o se abre. Para uso portátil, un objeto de memoria compartida debe ser identificado por un nombre de la forma / algunnombre , es decir, una cadena terminada en nulo de hasta NAME_MAX (es decir, 255) caracteresformados por una barra inicial, seguido de uno o más caracteres , ninguno de los cuales son barras.
oflag es una máscara de bits creado por ORing juntos exactamente uno de O_RDONLY o O_RDWR y cualquiera de las otras banderas figuran en esta lista:
O_RDONLY
Abra el objeto para el acceso de lectura. Un objeto de memoria compartida abrió de esta manera sólo puede ser mmap (2) ed para lectura(PROT_READ ) de acceso.
O_RDWR
Abra el objeto de lectura y escritura.
O_CREAT
Cree el objeto de memoria compartida si no existe. El usuario y grupo propietario del objeto se toman de las identificaciones correspondientes eficaces del proceso de llamada, y los bits del objeto de permisos se establecen de acuerdo con los de orden inferior 9 bits de modo , excepto que los bits puestos en la máscara dearchivo de proceso Modo creación (ver umask (2) ) están habilitados para el nuevo objeto. Un conjunto de constantes macro que pueden ser utilizados para definir el modo está listado en abierto (2) . (Definiciones simbólicas de estas constantes se pueden obtener mediante la inclusión < sys / stat.h > .)
Un nuevo objeto de memoria compartida inicialmente tiene longitud cero - el tamaño delobjeto que se puede establecer mediante ftruncate(2) . Los bytes asignados recientemente de un objeto de memoria compartida se inicializan automáticamente a 0.
O_EXCL
Si O_CREAT se especificó también, y un objeto de memoria compartida con el dado nombre ya existe, se devuelve un error. La comprobación de la existencia del objeto, y su creación si no existe, se llevan a cabo atómicamente.
O_TRUNC
Siel objeto de memoria compartida ya existe, se truncan a cero bytes.
Las definiciones de estos valores de indicador se puede obtener mediante la inclusión de < fcntl.h > .
Al finalizar con éxito shm_open () devuelve un nuevo descriptor de fichero se refiere al objeto de memoria compartida. Este descriptor de archivo se garantiza que sea el descriptor de archivo número más bajo no abiertopreviamente dentro del proceso. El FD_CLOEXEC bandera (ver fcntl (2) ) se establece para el descriptor de archivo.
El descriptor de archivo se utiliza normalmente en las llamadas posteriores a ftruncate (2) (para un objeto recién creado) y mmap (2) . Después de una llamada a mmap (2) el descriptor de archivo se puede cerrar sin afectar a la asignación de memoria.
La operación de shm_unlink () esanálogo a desvincular (2) : se elimina un nombre de objeto de memoria compartida, y, una vez que todos los procesos han unmapped el objeto, de-asigna y destruye el contenido de la región de memoria asociada. Después de un exitoso shm_unlink (), los intentos de shm_open () de un objeto con el mismo nombre se producirá un error (a menos que O_CREAT se ha especificado, en cuyo caso un objeto...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS