Cómo usar la llamada del sistema Readv en c

Cómo usar la llamada del sistema Readv en c
El sistema readv () llamado segmentos de conteo de lectura a partir del documento compartido a través del descriptor del documento FD enganchado en los varios buffers del vector. La E/S vectora es un proceso en el que una llamada de sistema solitario escribe hacia un vector de búferes a partir de un flujo singular de datos o lee de un vector de buffers a partir de un único flujo de datos. El método de llamada al sistema Readv () es similar a la lectura (2); Aparte de eso, llena varios buffers. El sistema Readv () revertir el total de bytes que se leen cuando tiene éxito; -1 se revierte en caso de un error. Este artículo cubrirá el tema de la llamada del sistema Readv () en el Ubuntu 20.04 Sistema Linux. Asegúrese de tener privilegios de sudo para evitar cualquier inconveniente.

Al iniciar, inicie sesión desde su sistema operativo Linux y abra el terminal de la consola de línea de comandos. Hay dos formas de abrirlo. El primero usa una tecla de acceso directo "Ctrl+Alt+T" mientras está en el escritorio del sistema Linux, y la otra está utilizando el área de actividad. Haga clic en la barra de menú de actividades resaltada en la esquina superior izquierda de la pantalla de escritorio. La barra de búsqueda aparecerá. Toque y escriba "Terminal" en él. Presione la clave "Enter" para continuar. La cubierta terminal se abrirá entonces. Después de la apertura del terminal de la consola, es hora de crear un archivo que tenga una extensión de tipo "txt" para un uso simple. Podemos usar la instrucción de "tacto" y el nombre de un archivo, e.gramo., prueba.txt, para crearlo. Presione el botón "Enter" y se creará un archivo.

Prueba de $ touch.TXT

En el directorio de inicio de su sistema Linux, puede encontrar el archivo recientemente formado "Prueba.TXT". Doble toque para abrirlo y escriba los datos de presentación a continuación en él. Guarde presionando "Ctrl+S" o simplemente haciendo clic en el botón de "Guardar". Cerrarlo después de la actualización utilizando un letrero cruzado en el lado derecho del archivo.

Volviendo al terminal, también puede verificar los datos de este archivo utilizando un comando muy simple "CAT" como debajo. La salida muestra el contenido del archivo "prueba.TXT".

Prueba de $ Cat.TXT

Ahora, para comenzar a trabajar en el idioma C, su sistema Linux debe tener un compilador de lenguaje C. Para esto, primero debe instalar un compilador. Sugerimos instalar el compilador "GCC" utilizando el comando "apt" sudo como se muestra a continuación.

$ sudo apt install gcc

Después de la configuración de un compilador, ahora puede trabajar en el idioma C correctamente. En primer lugar, tenemos que crear un nuevo archivo con una extensión de tipo "C" en su extremo utilizando el editor nano. Por lo tanto, intente la consulta a continuación en la consola para hacerlo.

$ nano prueba.C

Explicación del código

Después de que se haya abierto el editor NANO, escriba el siguiente código del lenguaje C para usar la llamada del sistema Readv en nuestro sistema Linux. En primer lugar, hemos utilizado las bibliotecas a continuación en el código C para que funcionen correctamente y sin ningún error. Luego hemos declarado la función principal como se muestra en el SNAP. Al comienzo de la función principal, tenemos que definir dos variables, "I" y "FD". Después de eso, se han especificado matrices de tres caracteres o menos llamados "F1", "F2" y "F3". Después de esto, hemos declarado una lista de tipos de estructura o una matriz llamada "iovec". Cada estructura iovec define un fragmento, que sería un amortiguador disjunto individual. Luego hemos creado otra variable de tamaño de tipo llamado "NR". Después de todas las declaraciones, hemos especificado una simple llamada del sistema "abierto" para abrir el archivo "Prueba.txt "de su director y lee todos sus contenidos, y vuelva al descriptor del archivo" FD ". La bandera se ha utilizado para fines de lectura. En la siguiente línea, hemos declarado una declaración "si" para verificar si el descriptor del archivo se iguala a "-a" o no. Si es "-1", a través de un mensaje de error "abrirá" en el shell y return 1. Fuera de la declaración "IF", hemos utilizado los descriptores de archivo para asignar valores a los índices de estructura. El "iov.Base "es un puntero que muestra el inicio de un búfer, y el" iov.Len ”muestra el tamaño total del búfer en bytes. Un vector parece ser una colección de secciones. Cada sección del vector especifica la ubicación y el tamaño de un caché de búfer sobre el cual o en qué datos pueden inscribirse o leer. Antes de antes, pasando al búfer posterior, el método Readv () cubre completamente cada uno de los bytes de bytes "iov_len". Antes de pasar a otro caché de búfer, el método WriteV () aún inscribe todos los bytes "iov_len". Comenzando con iov [0], anteriormente iov [1], y así sucesivamente, a través de iov [count-1], ambas operaciones aún actúan en las secciones en orden. Después de eso, hemos declarado una llamada del sistema "Readv" para leer el descriptor del archivo y los bytes de "IOV" hasta el tamaño de 3.

Luego hemos revisado los bytes devueltos. Si el valor de retorno es "-1", mostrará un mensaje de error "Readv". Hemos usado el bucle "para" para imprimir los caracteres del archivo a través de "iov". Si la función se ha cerrado, mostrará "cerrar". Guarde este código usando "Ctrl+S" y abandone el archivo utilizando el método de acceso directo "Ctrl+X".

Ahora compile el código usando el comando GCC como se indica a continuación.

Prueba de $ GCC.C

Después de eso, ejecute el comando de ejecución para verificar los resultados. La salida a continuación muestra el contenido en trozos y también muestra los mensajes de error. También muestra el número de índice para la matriz de búfer como 0, 1 y 2.

ps ./a.afuera

Conclusión

Hemos terminado todas las partes esenciales para intrincar la llamada del sistema "Readv" en el Ubuntu 20.04 Sistema Linux. Todos los comandos funcionarán igual para otras distribuciones de Linux.