canalizaciones con nombre (nombre de tubería) también se conoce como cola FIFO (FIFO), es un tubo especial, está presente en el sistema de archivos. tuberías y canalizaciones con nombre es muy similar, pero hay una característica significativa de su propia:
- Las canalizaciones con nombre se pueden utilizar en cualquier comunicación entre dos procesos, no se limitan a dos procesos homóloga.
- Canalizaciones con nombre como un archivo especial almacenada en el sistema de archivos, en lugar de almacenarse en la tubería imagen del núcleo. Tras el final del proceso de utilizar canalizaciones con nombre, canalizaciones con nombre todavía existe en el sistema de archivos a menos que los elimine, de lo contrario la canalización con nombre no va a desaparecer.
Y la tubería como canalizaciones con nombre sólo se puede utilizar para la transmisión unidireccional de datos, si la canalización con nombre para usar la transmisión bidireccional de datos entre dos procesos, se recomienda utilizar canalizaciones con nombre de dos vías.
Mkfifo a través de la línea de comandos o un comando mknod para crear una canalización con nombre:
int mkfifo(const char *pathname, mode_t mode);
- nombreruta: un puntero de cadena se utiliza para almacenar la ruta del archivo de la canalización con nombre.
- Modo: se utiliza para representar un permiso especificado para crear el archivo. S_IFIFO | 0666 ;
- Devuelve 0 en caso de éxito, devuelve -1 si falla la llamada.
int mknod(char *pathname, mode_t mode, dev_t dev);
- nombreruta: un puntero de cadena se utiliza para almacenar la ruta del archivo de la canalización con nombre.
- Modo: se utiliza para representar un permiso especificado para crear el archivo. S_IFIFO | 0666 ;
- 0:00 entrante crear un tipo de archivo común para la S_IFCHR o S_IFBLK cuando el archivo único dispositivo ,: número st_dev. Si se puede crear una tubería con nombre, el tercer argumento que pasa dev 0 indica que el archivo no es un archivo de dispositivo.
- Devuelve 0 en caso de éxito, devuelve -1 si falla la llamada.
En este punto, vamos a revisar las diferencias en las tres tuberías de nuevo
- Anónimo tubo tubos : almacenado en el núcleo, sólo se puede utilizar entre padres e hijos o entre hermanos procesos.
- tubo de conducto de flujo Estándar : para tubo tubos anónimos serie de paquetes. Devuelve la secuencia de archivo.
- Canalizaciones con nombre del FIFO : un tipo especial de archivos almacenados en el sistema de archivos, puede comunicarse entre muchos procesos no están relacionados.