Unix Socket - Fonctions d'assistance

Ce chapitre décrit toutes les fonctions d'assistance, qui sont utilisées lors de la programmation de socket. D'autres fonctions d'assistance sont décrites dans les chapitres -Ports and Serviceset réseau Byte Orders.

La fonction d' écriture

La fonction d' écriture tente d'écrire n octets depuis le tampon pointé par buf dans le fichier associé au descripteur de fichier ouvert, fildes .

Vous pouvez également utiliser la fonction send () pour envoyer des données à un autre processus.

#include <unistd.h>

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

Une fois terminé, write () renvoie le nombre d'octets réellement écrits dans le fichier associé à fildes. Ce nombre n'est jamais supérieur à n octets. Sinon, -1 est renvoyé.

Paramètres

  • fildes - C'est un descripteur de socket renvoyé par la fonction socket.

  • buf - C'est un pointeur vers les données que vous souhaitez envoyer.

  • nbyte- C'est le nombre d'octets à écrire. Si nbyte vaut 0, write () retournera 0 et n'aura aucun autre résultat si le fichier est un fichier normal; sinon, les résultats ne sont pas spécifiés.

La fonction de lecture

La fonction de lecture tente de lire n octets du fichier associé au tampon, fildes, dans le tampon pointé par buf.

Vous pouvez également utiliser la fonction recv () pour lire des données vers un autre processus.

#include <unistd.h>

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

Une fois terminé, write () renvoie le nombre d'octets réellement écrits dans le fichier associé à fildes. Ce nombre n'est jamais supérieur à n octets. Sinon, -1 est renvoyé.

Paramètres

  • fildes - C'est un descripteur de socket renvoyé par la fonction socket.

  • buf - C'est le tampon dans lequel lire les informations.

  • nbyte - C'est le nombre d'octets à lire.

La fonction fourche

La fonction fork crée un nouveau processus. Le nouveau processus appelé processus enfant sera une copie exacte du processus appelant (processus parent). Le processus enfant hérite de nombreux attributs du processus parent.

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

int fork(void);

Une fois terminé, fork () renvoie 0 au processus enfant et l'ID de processus du processus enfant au processus parent. Sinon, -1 est renvoyé au processus parent, aucun processus enfant n'est créé et errno est défini pour indiquer l'erreur.

Paramètres

  • void - Cela signifie qu'aucun paramètre n'est requis.

La fonction bzero

La fonction bzero place n octets null dans la chaîne s . Cette fonction est utilisée pour définir toutes les structures de socket avec des valeurs nulles.

void bzero(void *s, int nbyte);

This function does not return anything.

Parameters

  • s − It specifies the string which has to be filled with null bytes. This will be a point to socket structure variable.

  • nbyte − It specifies the number of bytes to be filled with null values. This will be the size of the socket structure.

The bcmp Function

The bcmp function compares byte string s1 against byte string s2. Both strings are assumed to be nbyte bytes long.

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

This function returns 0 if both strings are identical, 1 otherwise. The bcmp() function always returns 0 when nbyte is 0.

Parameters

  • s1 − It specifies the first string to be compared.

  • s2 − It specifies the second string to be compared.

  • nbyte − It specifies the number of bytes to be compared.

The bcopy Function

The bcopy function copies nbyte bytes from string s1 to the string s2. Overlapping strings are handled correctly.

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

This function does not return anything.

Parameters

  • s1 − It specifies the source string.

  • s2v − It specifies the destination string.

  • nbyte − It specifies the number of bytes to be copied.

The memset Function

The memset function is also used to set structure variables in the same way as bzero. Take a look at its syntax, given below.

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

This function returns a pointer to void; in fact, a pointer to the set memory and you need to caste it accordingly.

Parameters

  • s − It specifies the source to be set.

  • c − It specifies the character to set on nbyte places.

  • nbyte − It specifies the number of bytes to be set.