Programación en C

Cómo utilizar la llamada al sistema abierto en C

Cómo utilizar la llamada al sistema abierto en C

Las llamadas al sistema se utilizan en las distribuciones de Linux para proporcionar una puerta dentro del sistema operativo Linux y los programas. El sistema operativo Linux usa la biblioteca Glibc para admitir llamadas al sistema mientras usa el lenguaje C. También hay muchas más formas de utilizar las llamadas al sistema. En esta guía de artículos, discutiremos la llamada al sistema abierto en el sistema Linux. La llamada al sistema "Abrir" se ha utilizado para abrir rápidamente el archivo especificado en la ruta. Nos informa sobre el descriptor de archivo de un archivo creado por el usuario. Hemos estado usando Ubuntu 20.04 para obtener una llamada práctica al sistema "Abierto".

Instalar bibliotecas

El lenguaje C requiere que se instalen algunos paquetes de biblioteca adicionales como requisitos previos. En primer lugar, debe instalar el paquete manpages-dev para verificar la información sobre las llamadas al sistema. Abra la terminal de línea de comando desde el área de actividad y ejecute la siguiente instrucción para instalar páginas de manual.

$ sudo apt install manpages-dev

El resultado para la finalización de la instalación se proporciona a continuación.

Ahora comprobaremos la llamada al sistema abierto usando el comando "man" como se muestra a continuación.

$ man 2 abierto

La página de manual de salida para la llamada al sistema "Abrir" se muestra a continuación. Puedes ver la información adicional al respecto. Presione el botón "q" para salir.

La sintaxis anterior muestra las primeras tres líneas de las bibliotecas necesarias que se agregarán para las llamadas al sistema. Hay tres sintaxis disponibles para la llamada al sistema abierto. La primera sintaxis muestra el "nombre de ruta", que es el nombre de un archivo que se abrirá. El segundo parámetro, "banderas", muestra el modo de un archivo, e.gramo., leer o escribir. La segunda sintaxis se puede utilizar cuando el archivo no existe. El modo de parámetro se utiliza para mostrar los privilegios en el archivo.

Ahora es el momento de instalar el compilador GCC para la depuración de código C en Ubuntu 20.04 distribución de Linux. Para eso, ejecute la siguiente instrucción en el shell para hacerlo.

$ sudo apt install gcc

Requiere que toque "Y" para continuar con la instalación del compilador GCC; de lo contrario, presione el botón "n" para cerrar la instalación. Así que presiona el botón "y" y presiona Enter para continuar.

La salida para la finalización se muestra a continuación.

Ejemplo 01

Veamos el ejemplo muy simple de una llamada al sistema "Abierto". Primero, abra el shell de comandos y cree un nuevo archivo de texto "prueba.txt ”usando el comando táctil simple de la siguiente manera:

$ prueba táctil.TXT

Agregue algunos datos manualmente. Puede ver los datos en un archivo usando el siguiente comando cat.

$ prueba de gato.TXT

Ahora creemos un nuevo archivo C usando un comando nano en el shell, como se muestra a continuación.

$ nano nuevo.C

Se abrirá el siguiente archivo GNU nano. Tienes que escribir el siguiente código de lenguaje C en él. Puede ver que hemos agregado los paquetes de biblioteca necesarios para que el código C se ejecute correctamente. Después de eso, hemos definido la función principal para trabajar en una llamada al sistema abierto. Hemos declarado dos variables enteras. La variable "n" se usa para contar los valores del búfer, y "fd" se usa para el descriptor de archivo. Hemos declarado la matriz de búfer de tipo de carácter como "buf" que tiene un tamaño de 50. La llamada al sistema abierto se ha utilizado para leer el contenido del archivo "prueba.txt ”y devuélvalo al descriptor del archivo. El "O_RDONLY" se ha utilizado con fines de lectura. La siguiente línea muestra la llamada al sistema de lectura para recopilar los 10 bytes del búfer y devolverlos al entero n. Además, el comando de escritura se ha utilizado para escribir el contenido o los datos del búfer en el descriptor de archivo, que es la pantalla de salida en nuestro caso en este momento. Guarde este archivo usando Ctrl + S y ciérrelo usando el comando Ctrl + X.

#incluir
#incluir
#incluir
#incluir
int main ()

int n, fd;
char buf [50];
fd = open ("prueba.txt ”, O_RDONLY);
n = leer (fd, buf, 10);
escribir (1, buf, 10);

Primero compilemos el código C para una llamada al sistema abierto usando el comando gcc a continuación.

$ gcc nuevo.C

Ahora es el momento de verificar la salida del código C para una llamada al sistema abierto. Usemos el siguiente a.fuera de comando en el caparazón. La salida muestra los 10 bytes del contenido de un archivo "prueba.TXT".

PS ./a.fuera

Tomemos otro ejemplo para escribir el contenido de un archivo en otro archivo usando una llamada al sistema abierto. Para crear un nuevo archivo C usando el comando nano como se muestra a continuación.

$ nano nuevo.C

Así que tome el mismo código con un pequeño cambio en él. Hemos definido otro descriptor de archivo en el código como "fd1". Todo el código es el mismo excepto por una línea adicional. La segunda última línea del código ha usado la llamada al sistema abierto para crear un nuevo archivo llamado "objetivo" usando O_CREAT y el modo, solo escritura como O_WRONLY. 0642 muestra los privilegios asignados a este archivo. Y el archivo ha sido devuelto a un nuevo descriptor de archivo. La siguiente línea ha mostrado un comando para escribir los bytes de contenido en el búfer de acuerdo con su descriptor de archivo. Guarde el archivo y ciérrelo.

Ejecute el comando de compilación gcc para depurar el archivo de lenguaje C.

$ gcc nuevo.C

Para mostrar la salida del código C, intente un.instrucciones en el caparazón como se muestra a continuación. No hay salida porque la salida se ha redirigido al archivo "destino" recién creado.

PS ./a.fuera

Comprobemos los datos de un archivo de destino usando el comando cat. La salida muestra que el archivo tiene 20 bytes.

$ objetivo de gato

Conclusión

En el tutorial anterior, le explicamos cómo usar una llamada al sistema abierto en lenguaje C usando el compilador gcc. Con la ayuda de diferentes ejemplos explicados en esta guía, lo llevará a implementar su programa deseado.

Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...