La comunicación entre procesos Linux # # # tubería (tubería) - Canalizaciones con nombre FIFO

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

 

Publicados 170 artículos originales · ganado elogios 207 · Vistas 4,59 millones +

Supongo que te gusta

Origin blog.csdn.net/xiaoting451292510/article/details/103730994
Recomendado
Clasificación