Articulo de referencia

pipa anónima

En informática , una tubería anónima es un canal de comunicación FIFO simplex que se puede utilizar para la comunicación entre procesos (IPC) unidireccional . Su implementación ...

En informática , una tubería anónima es un canal de comunicación FIFO simplex que se puede utilizar para la comunicación entre procesos (IPC) unidireccional . Su implementación suele estar integrada en el subsistema de entrada/salida de archivos del sistema operativo . Normalmente, un programa padre abre tuberías anónimas y crea un nuevo proceso que hereda los otros extremos de las tuberías, o bien crea varios procesos nuevos y los organiza en una tubería .

La comunicación dúplex completa (bidireccional) normalmente requiere dos canales anónimos.

Las tuberías son compatibles con la mayoría de los sistemas operativos populares, desde Unix en adelante, y se crean utilizando el |carácter " " en muchos shells.

Unix

Las tuberías son una parte importante de muchas aplicaciones tradicionales de Unix y su compatibilidad está bien integrada en la mayoría de los sistemas operativos tipo Unix . Las tuberías se crean mediante la pipellamada al sistema , que crea una nueva tubería y devuelve un par de descriptores de archivo que hacen referencia a los extremos de lectura y escritura de la misma. Muchos programas tradicionales de Unix están diseñados como filtros para trabajar con tuberías.

Microsoft Windows

Al igual que muchas otras funciones de E/S y IPC de dispositivos en la API de Windows , las tuberías anónimas se crean y configuran con funciones de API específicas de la función de E/S. En este caso, CreatePipese utiliza para crear una tubería anónima con identificadores separados para los extremos de lectura y escritura de la tubería. Las operaciones de E/S de lectura y escritura en la tubería se realizan con las funciones de API estándar de la función de E/S ReadFiley WriteFile.

En Microsoft Windows , las lecturas y escrituras en tuberías anónimas siempre son bloqueantes. [ 1 ] En otras palabras, una lectura de una tubería vacía hará que el hilo que realiza la llamada espere hasta que haya al menos un byte disponible o se reciba un fin de archivo como resultado del cierre del identificador de escritura de la tubería. Del mismo modo, una escritura en una tubería llena hará que el hilo que realiza la llamada espere hasta que haya espacio disponible para almacenar los datos que se están escribiendo. Las lecturas pueden devolver menos bytes de los solicitados (también llamada lectura corta ).

Los nuevos procesos pueden heredar identificadores de tuberías anónimas durante el proceso de creación.

Véase también

Referencias

  • Hart, Johnson M. Programación de sistemas Windows, tercera edición. Addison-Wesley, 2005. ISBN 0-321-25619-0
  • "pipe(7) - Página man de Linux" . Archivado del original el 23 de marzo de 2010. Consultado el 27 de febrero de 2010 .

Notas

  1. "Operaciones de canalización anónimas" . MSDN . Consultado el 27 de febrero de 2010. Las operaciones de lectura y escritura asíncronas (superpuestas) no son compatibles con las canalizaciones anónimas.