Programación en C

Cómo utilizar la llamada al sistema de escritura en C

Cómo utilizar la llamada al sistema de escritura en C

La llamada al sistema sirve como puerta de enlace principal entre los programas y el kernel del sistema operativo Linux. Aunque es casi seguro que necesitará una llamada al sistema a lo largo de su carrera de programación en C, ya sea que busque una productividad excepcional o un cierto estilo de función, el repositorio Glibc u otras bibliotecas estándar que se encuentran en las distribuciones populares de Linux serán suficientes para la gran mayoría de sus requisitos. En esta guía, estableceremos un concepto sobre la llamada Write System en lenguaje C.

Sintaxis:

#incluir
ssize_t write (int fd, const void * buf, size_t count);

En esta sintaxis anterior, la primera línea muestra la biblioteca para llamadas al sistema. En la segunda línea, fd representa un descriptor de archivo que, de hecho, es un número que especifica el archivo abierto de un proceso. La palabra clave * buf significa búfer. Esto contiene cualquier dato en él. Lo siguiente es contar. Es el número de bytes que se escribirán en un descriptor de archivo desde el búfer.

Instalar requisitos previos:

Para ejecutar cualquier código en lenguaje C, primero debe instalar algunos paquetes en la distribución de Linux. Si desea ver más información sobre la llamada al sistema de escritura, debe instalar el paquete manpages-dev para hacerlo. Para abrir la terminal usando la tecla de atajo Ctrl + Alt + T. Después de abrirlo, escriba el siguiente comando de instalación de apt seguido de la palabra clave manpages-dev para instalar las páginas de manual.

$ sudo apt install manpages-dev

La instalación de las páginas de manual llevará algún tiempo. Espere a que se complete.

Después de la instalación, puede ver la información adicional sobre la llamada al sistema "escribir" a través del comando man a continuación en el shell.

$ man 2 escribe

La página de manual de salida para el comando "escribir" se proporciona a continuación. Puedes leer la información al respecto. Presione q para salir del manual.

Ahora es el momento de instalar el paquete "Gcc" en su sistema Linux para que funcione en el lenguaje C. Para eso, abra el shell y escriba el siguiente comando apt install seguido de la palabra clave "gcc".

$ sudo apt install gcc

Mientras tanto, durante la instalación, puede pedirle que confirme esta acción de instalación presionando "y" para continuar y "n" para detenerla. Entonces, toque la tecla "y" y presione la tecla Enter.

Se instalará en su sistema en unos minutos, y las últimas líneas de salida serán como se muestra en la siguiente instantánea.

Ejemplos:

Tengamos algunos ejemplos de una llamada al sistema de "escritura" en nuestra distribución de Linux. Por lo tanto, abra el shell de la línea de comandos y cree un nuevo archivo C en él con la extensión de punto "c". Tienes que usar el siguiente comando nano para crearlo y abrirlo rápidamente. Le hemos dado un nombre como "nuevo.C".

$ nano nuevo.C

Se abrirá la ventana de abajo. Ahora tienes que escribir el código adjunto en este archivo. En este código, hemos incluido un unistd.h biblioteca primero. Luego hemos creado la función principal, y dentro de esta función, hemos creado una llamada al sistema "escribir". En esta llamada al sistema, el primer parámetro es el descriptor de archivo. En este caso, el entero 1 representa la pantalla del dispositivo de salida y es fijo. Entonces nuestra salida se mostrará en la pantalla. El segundo parámetro muestra los datos del búfer. Puedes agregarle cualquier cosa. Y el último parámetro muestra el número de recuento de los datos dados en el parámetro de búfer. Como hemos mencionado 5 como el número de conteo, solo mostrará los primeros 5 bytes de los datos del búfer e ignorará los bytes que quedan. Guarde este código usando la tecla de método abreviado Ctrl + S y salga de este archivo usando el comando Ctrl + X.

#incluir
Int main ()
Escribir (1, "Aqsa Yasin", 5);

Ahora en la terminal, pruebe el siguiente comando gcc para compilar este código recién creado con un nombre de archivo.

$ gcc nuevo.C

Revisemos este código usando el valor predeterminado a.out archivo creado en tiempo de ejecución. Entonces, prueba el siguiente a.comando de salida para comprobar la salida de la llamada al sistema "escribir". Tenemos que usarlo con "./ ”Para elegir el archivo del directorio actual.

PS ./a.fuera

La salida que puede ver solo muestra la palabra "Aqsa" debido al número de conteo 5.

Cambiemos un poco nuestro código. Hemos cambiado el número de conteo a 11 porque tenemos un total de 11 bytes en nuestro búfer de datos "Aqsa Yasin". Entonces, esta vez, la salida mostrará los bytes completos de datos de cadena "Aqsa Yasin". Guarde este archivo usando Ctrl + S y salga usando la tecla de atajo Ctrl + X.

Compilemos el código actualizado usando el compilador gcc recién instalado para la distribución de Linux. Pruebe el mismo comando gcc junto con el nombre de un archivo como "nuevo.C".

$ gcc nuevo.C

Ahora muestre la salida del mismo código usando el anterior "a.out "comando como se muestra a continuación. La salida muestra la cadena completa "Aqsa Yasin" del búfer.

PS ./a.fuera

Veamos cómo funciona el código cuando tomamos el número de recuento mayor que el número total de bytes que contienen los datos del búfer. Entonces, hemos estado usando el recuento como 30. Guarde y cierre el archivo.

Compile el mismo archivo actualizado usando el comando gcc como se muestra a continuación.

$ gcc nuevo.C

Ahora ejecute el archivo usando el.out, y la salida mostrará los datos del búfer, así como algún valor de basura con él, como se muestra en la salida de la instantánea a continuación.PS ./a.fuera

También puede verificar el número total de bytes escritos en el archivo usando el siguiente código en el mismo archivo.

Compile el código por instrucción gcc.

$ gcc nuevo.C

La salida muestra el número total de bytes, incluidos los datos del búfer y el salto de línea, utilizando la.fuera de comando.

PS ./a.fuera

Conclusión:

En este tutorial, hemos elaborado el concepto para usar la llamada al sistema "Write" en C. Pruebe todos los ejemplos para comprender la idea de la llamada al sistema "escribir" utilizando este artículo.

Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...
Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...