Unix Socket - Funzioni di supporto

Questo capitolo descrive tutte le funzioni di supporto, che vengono utilizzate durante la programmazione dei socket. Altre funzioni di supporto sono descritte nei capitoli:Ports and Servicese Rete Byte Orders.

La funzione di scrittura

La funzione write tenta di scrivere nbyte byte dal buffer puntato da buf nel file associato al descrittore di file aperto, fildes .

È inoltre possibile utilizzare la funzione send () per inviare dati a un altro processo.

#include <unistd.h>

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

Dopo il completamento con successo, write () restituisce il numero di byte effettivamente scritti nel file associato ai file. Questo numero non è mai maggiore di nbyte. In caso contrario, viene restituito -1.

Parametri

  • fildes - È un descrittore di socket restituito dalla funzione socket.

  • buf - È un puntatore ai dati che desideri inviare.

  • nbyte- È il numero di byte da scrivere. Se nbyte è 0, write () restituirà 0 e non avrà altri risultati se il file è un file normale; in caso contrario, i risultati non sono specificati.

La funzione di lettura

La funzione read tenta di leggere nbyte byte dal file associato al buffer, fildes, nel buffer puntato da buf.

È inoltre possibile utilizzare la funzione recv () per leggere i dati in un altro processo.

#include <unistd.h>

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

Dopo il completamento con successo, write () restituisce il numero di byte effettivamente scritti nel file associato ai file. Questo numero non è mai maggiore di nbyte. In caso contrario, viene restituito -1.

Parametri

  • fildes - È un descrittore di socket restituito dalla funzione socket.

  • buf - È il buffer in cui leggere le informazioni.

  • nbyte - È il numero di byte da leggere.

La funzione forcella

La funzione fork crea un nuovo processo. Il nuovo processo chiamato processo figlio sarà una copia esatta del processo chiamante (processo genitore). Il processo figlio eredita molti attributi dal processo padre.

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

int fork(void);

Dopo il completamento con successo, fork () restituisce 0 al processo figlio e l'ID del processo figlio al processo genitore. Altrimenti viene restituito -1 al processo genitore, non viene creato alcun processo figlio e errno viene impostato per indicare l'errore.

Parametri

  • void - Significa che non è richiesto alcun parametro.

La funzione bzero

La funzione bzero inserisce nbyte byte nulli nella stringa s . Questa funzione viene utilizzata per impostare tutte le strutture socket con valori nulli.

void bzero(void *s, int nbyte);

Questa funzione non restituisce nulla.

Parametri

  • s- Specifica la stringa che deve essere riempita con byte nulli. Questo sarà un punto per la variabile della struttura del socket.

  • nbyte- Specifica il numero di byte da riempire con valori nulli. Questa sarà la dimensione della struttura del socket.

La funzione bcmp

La funzione bcmp confronta la stringa di byte s1 con la stringa di byte s2. Si presume che entrambe le stringhe siano lunghe nbyte byte.

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

Questa funzione restituisce 0 se entrambe le stringhe sono identiche, 1 altrimenti. La funzione bcmp () restituisce sempre 0 quando nbyte è 0.

Parametri

  • s1 - Specifica la prima stringa da confrontare.

  • s2 - Specifica la seconda stringa da confrontare.

  • nbyte - Specifica il numero di byte da confrontare.

La funzione bcopy

La funzione bcopy copia nbyte byte dalla stringa s1 alla stringa s2. Le stringhe sovrapposte vengono gestite correttamente.

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

Questa funzione non restituisce nulla.

Parametri

  • s1 - Specifica la stringa di origine.

  • s2v - Specifica la stringa di destinazione.

  • nbyte - Specifica il numero di byte da copiare.

La funzione memset

La funzione memset viene utilizzata anche per impostare le variabili di struttura allo stesso modo dibzero. Dai un'occhiata alla sua sintassi, data di seguito.

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

Questa funzione restituisce un puntatore a void; in effetti, un puntatore alla memoria impostata e devi castrarlo di conseguenza.

Parametri

  • s - Specifica la sorgente da impostare.

  • c - Specifica il carattere da impostare sui posti nbyte.

  • nbyte - Specifica il numero di byte da impostare.