Canonada anònima
En informàtica, una canonada anònima és un canal de comunicació FIFO simple que es pot utilitzar per a la comunicació interprocés unidireccional (IPC). Sovint, una implementació s'integra al subsistema d'IO de fitxers del sistema operatiu. Normalment, un programa principal obre canonades anònimes i crea un procés nou que hereta els altres extrems de les canonades, o crea diversos processos nous i els organitza en una canalització.[1]
La comunicació full-duplex (bidireccional) requereix normalment dues canonades anònimes.[2]
Els pipelines són compatibles amb la majoria dels sistemes operatius populars, des d'Unix i DOS en endavant, i es creen utilitzant el caràcter " |
" en molts intèrprets d'ordres.[3]
Unix
[modifica]Els pipelines són una part important de moltes aplicacions Unix tradicionals i el seu suport està ben integrat a la majoria de sistemes operatius semblants a Unix. Les canonades es creen mitjançant la crida al sistema pipe
, que crea una canonada nova i retorna un parell de descriptors de fitxers que fan referència als extrems de lectura i escriptura de la canonada. Molts programes Unix tradicionals estan dissenyats com a filtres per treballar amb pipes.
Microsoft Windows
[modifica]Com moltes altres instal·lacions d'IO i IPC del dispositiu a l'API de Windows, es creen i es configuren canalitzacions anònimes amb funcions d'API específiques de la instal·lació d'IO. En aquest cas CreatePipe
s'utilitza per crear una canonada anònima amb mànecs separats per als extrems de lectura i escriptura de la canonada. Les operacions d'E/S de lectura i escriptura a la canonada es realitzen amb les funcions estàndard de l'API de la instal·lació d'E/S ReadFile
i WriteFile
.
A Microsoft Windows, les lectures i escriptures a canonades anònimes sempre estan bloquejant.[4] Dit d'una altra manera, una lectura d'una canonada buida farà que el fil de trucada esperi fins que almenys un byte estigui disponible o es rebi un final de fitxer com a resultat del tancament del controlador d'escriptura de la canonada. De la mateixa manera, una escriptura a una canonada completa farà que el fil de trucada esperi fins que hi hagi espai disponible per emmagatzemar les dades que s'estan escrivint. Les lectures poden tornar amb menys del nombre de bytes sol·licitats (també anomenada lectura curta).
Referències
[modifica]- ↑ stevewhims. «Anonymous Pipes - Win32 apps» (en anglès americà), 07-01-2021. [Consulta: 10 desembre 2023].
- ↑ «Anonymous and Named Pipes in Linux» (en anglès). [Consulta: 10 desembre 2023].
- ↑ «Anonymous Pipes Made Easy» (en anglès americà), 24-03-2016. [Consulta: 10 desembre 2023].
- ↑ «Anonymous Pipe Operations» (en anglès). MSDN. [Consulta: 27 febrer 2010].