Socket Unix - Funciones auxiliares

Este capítulo describe todas las funciones auxiliares que se utilizan durante la programación de conectores. Otras funciones de ayuda se describen en los capítulos:Ports and Servicesy Red Byte Orders.

La función de escritura

La función de escritura intenta escribir nbyte bytes desde el búfer apuntado por buf al archivo asociado con el descriptor de archivo abierto, fildes .

También puede usar la función send () para enviar datos a otro proceso.

#include <unistd.h>

int write(int fildes, const void *buf, int nbyte);

Una vez completado con éxito, write () devuelve el número de bytes realmente escritos en el archivo asociado con los archivos. Este número nunca es mayor que nbyte. De lo contrario, se devuelve -1.

Parámetros

  • fildes - Es un descriptor de socket devuelto por la función socket.

  • buf - Es un puntero a los datos que desea enviar.

  • nbyte- Es el número de bytes a escribir. Si nbyte es 0, write () devolverá 0 y no tendrá otros resultados si el archivo es un archivo normal; de lo contrario, los resultados no se especifican.

La función de lectura

La función de lectura intenta leer nbyte bytes del archivo asociado con el búfer, fildes, en el búfer al que apunta buf.

También puede usar la función recv () para leer datos en otro proceso.

#include <unistd.h>

int read(int fildes, const void *buf, int nbyte);

Una vez completado con éxito, write () devuelve el número de bytes realmente escritos en el archivo asociado con los archivos. Este número nunca es mayor que nbyte. De lo contrario, se devuelve -1.

Parámetros

  • fildes - Es un descriptor de socket devuelto por la función socket.

  • buf - Es el búfer para leer la información.

  • nbyte - Es el número de bytes a leer.

La función de la bifurcación

La función fork crea un nuevo proceso. El nuevo proceso llamado proceso hijo será una copia exacta del proceso de llamada (proceso padre). El proceso hijo hereda muchos atributos del proceso padre.

#include <sys/types.h>
#include <unistd.h>

int fork(void);

Una vez completado con éxito, fork () devuelve 0 al proceso hijo y el ID de proceso del proceso hijo al proceso padre. De lo contrario, se devuelve -1 al proceso padre, no se crea ningún proceso hijo y se establece errno para indicar el error.

Parámetros

  • void - Significa que no se requiere ningún parámetro.

La función bzero

La función bzero coloca nbyte bytes nulos en la cadena s . Esta función se utiliza para establecer todas las estructuras de conectores con valores nulos.

void bzero(void *s, int nbyte);

Esta función no devuelve nada.

Parámetros

  • s- Especifica la cadena que debe llenarse con bytes nulos. Esta será una variable de estructura de punto a socket.

  • nbyte- Especifica el número de bytes a llenar con valores nulos. Este será el tamaño de la estructura del enchufe.

La función bcmp

La función bcmp compara la cadena de bytes s1 con la cadena de bytes s2. Se supone que ambas cadenas tienen una longitud de nbyte bytes.

int bcmp(const void *s1, const void *s2, int nbyte);

Esta función devuelve 0 si ambas cadenas son idénticas, 1 en caso contrario. La función bcmp () siempre devuelve 0 cuando nbyte es 0.

Parámetros

  • s1 - Especifica la primera cadena a comparar.

  • s2 - Especifica la segunda cadena a comparar.

  • nbyte - Especifica el número de bytes a comparar.

La función bcopy

La función bcopy copia nbyte bytes de la cadena s1 a la cadena s2. Las cadenas superpuestas se manejan correctamente.

void bcopy(const void *s1, void *s2, int nbyte);

Esta función no devuelve nada.

Parámetros

  • s1 - Especifica la cadena de origen.

  • s2v - Especifica la cadena de destino.

  • nbyte - Especifica el número de bytes a copiar.

La función memset

La función memset también se usa para establecer variables de estructura de la misma manera quebzero. Eche un vistazo a su sintaxis, que se muestra a continuación.

void *memset(void *s, int c, int nbyte);

Esta función devuelve un puntero a void; de hecho, un puntero a la memoria configurada y debe convertirlo en consecuencia.

Parámetros

  • s - Especifica la fuente a configurar.

  • c - Especifica el carácter a establecer en lugares de nbyte.

  • nbyte - Especifica el número de bytes a configurar.