|
|||||||
|
|
UNIXSection: Manual del Programador de Linux (7)Updated: 7 mayo 1999 Index Return to Main Contents NOMBREunix, PF_UNIX, AF_UNIX, PF_LOCAL, AF_LOCAL - Conectores para la comunicación local entre procesos.SINOPSIS#include <sys/socket.h>#include <sys/un.h>
unix_socket = socket(PF_UNIX, type, 0);
DESCRIPCIÓNLa familia de conectores PF_UNIX (también conocida como PF_LOCAL) se usa para comunicar procesos en la misma máquina de manera eficiente. Los conectores Unix pueden ser o bien anónimos (creados mediante socketpair(2)) o bien estar asociados con un fichero de tipo conector. Linux también soporta un espacio de nombres abstracto que es independiente del sistema de ficheros.Los tipos válidos son SOCK_STREAM para un conector orientado a conexión y SOCK_DGRAM para un conector orientado a datagramas que conserva las fronteras entre los mensajes. Los conectores Unix siempre son fiables y no reordenan los datragramas. Los conectores Unix soportan el paso de descriptores de fichero o credenciales de proceso a otros procesos, como datos auxiliares a los datagramas. FORMATO DE LAS DIRECCIONESUna dirección Unix se define como un nombre de fichero en el sistema de fichero o como una cadena única en el espacio de nombres abstracto. Los conectores creados mediante socketpair(2) son anónimos. Para conectores no anónimos la dirección del destino se puede configurar usando connect(2). La dirección local se puede configurar usando bind(2). Cuando un conector se conecta y no tiene todavía una dirección local, se genera automáticamente una dirección única en el espacio de nombres abstracto.
sun_family siempre contiene AF_UNIX. sun_path contiene el nombre de ruta (terminado en cero) del conector en el sistema de ficheros. Si sun_path comienza con un byte cero se refiere al espacio de nombres abstracto mantenido por el módulo del protocolo Unix. La dirección del conector en este espacio de nombres viene dada por el resto de los bytes en sun_path. Dese cuenta que los nombres en el espacio de nombres abstracto no terminan en cero. OPCIONES DE LOS CONECTORESPor razones históricas estas opciones de los conectores se especifican con un tipo SOL_SOCKET, aunque sean específicas de PF_UNIX. Se pueden configurar con setsockopt(2) y leer con getsockopt(2) especificando SOL_SOCKET como familia del conector.
MENSAJES AUXILIARESPor razones históricas, estos tipos de mensajes auxiliares se especifican con un tipo SOL_SOCKET, aunque son específicos de PF_UNIX. Para enviarlos, asigne al campo cmsg_level de la estructura cmsghdr el valor SOL_SOCKET y al campo cmsg_type el tipo. Para más información, vea cmsg(3).
VERSIONESSCM_CREDENTIALS y el espacio de nombres abstracto fueron introducidos en la versión 2.2 de Linux y no deberían usarse en programas transportables.NOTASEn la implementación de Linux, los conectores que son visibles en el sistema de ficheros respetan los permisos del directorio en el que están. Se pueden cambiar sus propietarios, grupos y permisos. La creación de un nuevo conector fallará si el proceso no tiene permisos de escritura y búsqueda (ejecución) en el directorio en el que se crea el conector. La conexión al objeto conector requiere permiso de lectura/escritura. Este comportamiento difiere del de muchos sistemas derivados de BSD que ignoran los permisos para los conectores Unix. Por seguridad, los programas transportables no deberían confiar en esta característica.Ligar un conector con un nombre de fichero crea un conector en el sistema de ficheros que debe ser borrado por el invocador cuando no se necesite más (usando unlink(2)). Se aplica la semántica habitual de Unix detrás de una operación de cierre: el conector puede ser desligado en cualquier instante y será finalmente eliminado del sistema de ficheros cuando se cierre la última referecia a él. Para pasar descriptores de fichero o credenciales necesita enviar/leer al menos un byte. ERRORES
La capa de conectores genérica, o el sistema de ficheros al generar un objeto conector en el sistema de fichero, pueden producir otros errores. Vea las páginas de manual adecuadas para más información. VÉASE TAMBIÉNrecvmsg(2), sendmsg(2), socket(2), socketpair(2), cmsg(3), socket(7)CREDITOSEsta página de manual fue escrita por Andi Kleen.
Index
| ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man7". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |