función mkfifo c

función mkfifo c
“La función MKFIFO crea un archivo FIFO personalizado con el nombre de nombre. Un archivo que se comporta como una tubería se conoce como un FIFO o una tubería con nombre. Para escribir, una operación abre el FIFO, y para leer, otro. Para abrir una tubería con nombre, podemos utilizar la función de biblioteca "mkfifo ()". El nombre de ruta del modo FIFO y el FIFO son los dos parámetros que la función "Mkfifo ()" acepta. Los permisos del archivo se establecen utilizando el parámetro de modo; Para obtener más información, consulte la asignación de permisos de archivo. El valor de retorno típico de MKFIFO es 0, lo que indica éxito. En esta guía, explicaremos este concepto en detalle y exploraremos un ejemplo aquí en el que utilizaremos esta función "mkfifo ()" y escribiremos en un archivo y lo leeremos en otro archivo."

Sintaxis
int mkfifo (const char *pathname, mode_t mode);

Ejemplo
Vamos a realizar este ejemplo en Ubuntu 20.04. Primero, instalamos el compilador GCC y luego abrimos el editor de texto de Ubuntu 20.04 y poner algún código. Crearemos dos archivos diferentes aquí y luego leerán/escribiremos datos en estos archivos utilizando la función "mkfifo ()" en la programación C. Para crear un código C, debemos poner los archivos de encabezado. El "stdio. El archivo de encabezado H ”está aquí, que es la entrada/salida estándar que incluye la información de entrada/salida. Tenemos una "cadena. H ”Archivo de encabezado, y este archivo de encabezado se usa aquí para las funciones de cadena. Entonces tenemos el "unistd. H ”Archivo de encabezado, que se utiliza para acceder a API. El "fcntl. H "se usa para el control del archivo y" SYS/STAT.h "incluye bloques de construcción que facilitan aprender sobre las propiedades de un archivo.

Además, incluimos los "Sys/Tipos.H ”Archivo de encabezado. Utilizamos la función "main ()" después de estos archivos de encabezado, y esta función declara el tipo de datos como "int". Debajo de esto, declaramos el entero "int" y lo nombramos "fd". Después de esto, declaramos e inicializamos el "char" llamado "myfifo" e inicializamos con "/tmp/fifo". Ahora, tenemos la función "mkfifo ()" donde pasamos dos parámetros. El primer parámetro es "myfifo", y el segundo parámetro es "0666" aquí. El primer parámetro es el nombre de ruta, y el segundo es el modo.

Luego declaramos dos matrices del nombre "arr1 []" y "arr2 []" del tamaño "80". Utilizamos el bucle "while ()" aquí y ponemos "1" en él. Dentro de este bucle While, tenemos diferentes declaraciones. Utilizamos el "Open ()" para leer o escribir en el archivo. Ponemos la ruta del archivo como el primer parámetro y luego utilizamos el indicador aquí como el segundo parámetro, que es "o_wronly". Este indicador "O_WRONLY" se utiliza aquí, lo que significa que abrimos este archivo para escribir solo. La función "fgets ()" está aquí para leer los personajes.

Luego tenemos la función "Write ()", que se utiliza para escribir datos del búfer que el usuario declara y luego cerramos este archivo utilizando la función "Cerrar ()". Después de esto, nuevamente tenemos la función "Open ()", pero esta vez utilizamos el indicador "0_rdonly", lo que significa que esta vez el archivo está abierto para solo lectura. También tenemos el "Read ()" que se utiliza solo para leer los datos que se escribieron previamente en este archivo. Luego usamos el "printf" para representar los datos en la pantalla de salida y nuevamente cerrar este archivo utilizando la función "Cerrar ()". Debemos cerrar el archivo que hemos abierto. Aquí, cerramos el soporte del bucle while y colocamos la declaración "return 0" debajo de esto.

Estamos creando el segundo código C aquí colocando algunas líneas de código. Usamos los mismos archivos de encabezado en este código, que hemos utilizado en el código anterior. Luego tenemos la función "main ()", y dentro de esto, declaramos el "int" como "fd1" y "char" como "myfifo". El "mkfifo ()" también se utiliza aquí de la misma manera que lo hemos usado en el código anterior. Aquí, tenemos dos matrices de "char" del nombre "str1" y "str2" y asignan el tamaño como "80". Se utiliza la función "Open ()", y el indicador "0_RDONLY" se usa para indicar que el archivo está abierto para el acceso de solo lectura esta vez. Tenemos una función llamada "Read ()" que se usa exclusivamente para leer datos.

Luego, representamos los datos en la pantalla de salida usando "printf", y cerramos este archivo utilizando la función "Cerrar ()". La ruta del archivo es el primer parámetro, y el segundo parámetro es el indicador, que en este caso es "o_wronly."Abrimos este archivo para escribir solo usando el indicador" O_WRONLY "en este caso. Aquí, los caracteres se pueden leer utilizando la función "fgets ()". La función "Write ()" se usa para escribir datos desde el búfer que el usuario ha declarado antes de usar la función "Cerrar ()" para cerrar el archivo.

Ahora, obtenemos la salida abriendo dos terminales simultáneamente y ejecutando el comando en ambos terminales al mismo tiempo. Primero, compilamos ambos archivos en terminales separados. En el primer terminal, ejecutamos el comando que se da a continuación y luego nos movemos al segundo terminal.

En el segundo terminal, colocamos este comando para compilar el segundo archivo de código C. Después de la compilación exitosa de ambos comandos en diferentes terminales, vamos a ejecutar ambos códigos.

Para la ejecución, ponemos el comando dado en el primer terminal; Nada se mostrará aquí.

Ahora, en el segundo terminal, debemos ejecutar este código escribiendo este comando que se muestra aquí. Además, no se muestra nada aquí.

En el primer terminal, escriba "Hola", presione Entrar y abra el segundo terminal.

Este "hola" también se muestra aquí en el segundo terminal, que hemos escrito en el primer terminal.

Aquí, puede ver las salidas de ambos archivos en las imágenes, que se dan a continuación.

Conclusión

Presentamos esta guía para mostrarle cómo funciona la función "mkfifo ()" en la programación C. Hemos explicado esta función "mkfifo ()" en detalle aquí, y también demostramos un ejemplo aquí en el que hemos utilizado esta función "mkfifo ()". También hemos proporcionado la salida aquí, por lo que verá fácilmente cómo usar esta función "mkfifo ()" en c. Esperamos que esta guía mejore su conocimiento de las funciones de la programación C.