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.