Llamada del sistema de enlace en c

Llamada del sistema de enlace en c
La llamada del sistema bind () une una dirección o nombre con cualquier socket en el idioma C. Esta llamada del sistema se ha utilizado principalmente en la programación de sockets. Esta dirección estará unida al descriptor de socket. La llamada del sistema bind () contiene tres parámetros en. El primero es el descriptor de un socket. El segundo parámetro es el puntero utilizado para la dirección de un socket. La dirección debe ser una ruta local. El tercer argumento puede ser el tamaño de una dirección de socket. La guía de hoy verá cómo funciona la llamada del sistema "bind ()" en Ubuntu 20.04 usando el lenguaje C. Entonces, inicie sesión desde el sistema primero.

Ejemplo:

Después del inicio de sesión exitoso y adecuado de la cuenta de usuario del sistema Linux, abra la aplicación de la consola Shell. Puede usar la tecla de acceso directo "Ctrl+Alt+T" o buscarla desde el área de actividad de escritorio para iniciarla. Después del lanzamiento de la consola Terminal, primero creemos un archivo de idioma C con la consulta ampliamente conocida "Toque" de la siguiente manera:

Este archivo ha sido creado en la carpeta de inicio de Linux. Para abrir y editar este archivo, use cualquier editor simple. Los más sugeridos son Vim y GNU. Entonces, hemos utilizado el editor de Nano "GNU" para abrir el recién hecho "Nuevo.archivo c ".

Después de que el archivo se haya abierto en el editor, hemos agregado el código a continuación. El código contiene las bibliotecas necesarias incluidas en él para la programación de calcetines y la transmisión de entrada-salida. Al comienzo de un código, hemos definido la ruta de un enchufe como el directorio de "inicio" de Ubuntu 20.04. El método principal se ha inicializado con una variable entera y un puntero de matriz de tipo de caracteres como argumento. Se ha declarado una variable entera "s". Se ha inicializado una variable de tipo de estructura para la dirección de socket. La función "enchufe" se ha utilizado para inicializar un socket en el sistema Linux y una secuencia de socket con 0 tamaños. Toda la información sobre el socket se ha guardado en su descriptor "s". Si el tamaño de un socket es igual a "-1", debe enviar un mensaje de error al dejar la compilación de un código.

La función "memset" se ha utilizado aquí para unir la dirección de enchufe local con el tamaño de una estructura definida ya. Se ha definido la familia de una dirección de socket del sistema. Después de eso, la llamada del sistema Strncpy se ha utilizado aquí para copiar la dirección del enchufe a una ruta estructurada y encontrar el tamaño de una ruta estructurada. Ahora viene la parte principal. Hemos estado usando la instrucción "si" aquí para usar la llamada del sistema bind () en ella. La llamada del sistema de enlace ha estado obteniendo el descriptor de enchufes, obteniendo la dirección estructural y la unir con la dirección de enchufe local y obtener el tamaño de una ruta de dirección de socket. Si el tamaño de una dirección estructural es igual a "-1", imprimirá un error de "enlace" junto con algún mensaje de error incorporado del sistema utilizando la función "EXIT_FAILURE". El código se ha guardado después de eso.

En primer lugar, compile su código con un compilador "GCC" utilizado para el lenguaje C en el sistema Linux. Después de eso, ejecute el archivo con el "A.Out "consulta en la consola. La salida arroja una excepción que la dirección ya está en uso. Indicó el directorio de "inicio" de la dirección del sistema Linux, que siempre está en uso de los usuarios.

Abramos el mismo "nuevo.archivo c "para hacer un pequeño cambio en él. Tenemos que usar la misma consulta "nano" en la aplicación de la consola para abrirla dentro de un editor para editar. Después de que el archivo se ha abierto correctamente, hemos cambiado la ruta de socket definida en la parte superior del código. Hemos cambiado el camino a "imágenes" de "hogar" para obtener un resultado diferente.

Después de la compilación, el archivo fue ejecutado y recibió otro mensaje. Este mensaje también indica el error "permiso denegado" para acceder a la ruta "imágenes".

Conclusión:

Entonces, esto se trataba de la llamada del sistema Bind () en C dentro del sistema operativo Linux. Hemos dado una breve explicación de la programación de sockets. Asegúrese de pasar por el manual de Linux para una comprensión clara.