Soquete Unix - Funções auxiliares
Este capítulo descreve todas as funções auxiliares, que são usadas durante a programação de soquetes. Outras funções auxiliares são descritas nos capítulos -Ports and Servicese rede Byte Orders.
A função de escrita
A função de gravação tenta gravar nbyte bytes do buffer apontado por buf para o arquivo associado ao descritor de arquivo aberto, fildes .
Você também pode usar a função send () para enviar dados para outro processo.
#include <unistd.h>
int write(int fildes, const void *buf, int nbyte);
Após a conclusão bem-sucedida, write () retorna o número de bytes realmente gravados no arquivo associado a fildes. Este número nunca é maior que nbyte. Caso contrário, -1 é retornado.
Parâmetros
fildes - É um descritor de socket retornado pela função de socket.
buf - É um ponteiro para os dados que você deseja enviar.
nbyte- É o número de bytes a serem gravados. Se nbyte for 0, write () retornará 0 e não terá outros resultados se o arquivo for um arquivo normal; caso contrário, os resultados não são especificados.
A função de leitura
A função read tenta ler nbyte bytes do arquivo associado ao buffer, fildes, no buffer apontado por buf.
Você também pode usar a função recv () para ler dados para outro processo.
#include <unistd.h>
int read(int fildes, const void *buf, int nbyte);
Após a conclusão bem-sucedida, write () retorna o número de bytes realmente gravados no arquivo associado a fildes. Este número nunca é maior que nbyte. Caso contrário, -1 é retornado.
Parâmetros
fildes - É um descritor de socket retornado pela função de socket.
buf - É o buffer para ler as informações.
nbyte - É o número de bytes a serem lidos.
A função fork
A função fork cria um novo processo. O novo processo denominado processo filho será uma cópia exata do processo de chamada (processo pai). O processo filho herda muitos atributos do processo pai.
#include <sys/types.h>
#include <unistd.h>
int fork(void);
Após a conclusão bem-sucedida, fork () retorna 0 para o processo filho e o ID do processo filho para o processo pai. Caso contrário, -1 é retornado ao processo pai, nenhum processo filho é criado e errno é definido para indicar o erro.
Parâmetros
void - Isso significa que nenhum parâmetro é necessário.
A função bzero
A função bzero coloca nbyte bytes nulos na string s . Esta função é usada para definir todas as estruturas de socket com valores nulos.
void bzero(void *s, int nbyte);
Esta função não retorna nada.
Parâmetros
s- Especifica a string que deve ser preenchida com bytes nulos. Este será um ponto para a variável de estrutura do socket.
nbyte- Especifica o número de bytes a serem preenchidos com valores nulos. Este será o tamanho da estrutura do soquete.
A função bcmp
A função bcmp compara a string de bytes s1 com a string de bytes s2. Assume-se que ambas as strings têm nbyte bytes.
int bcmp(const void *s1, const void *s2, int nbyte);
Esta função retorna 0 se ambas as strings são idênticas, 1 caso contrário. A função bcmp () sempre retorna 0 quando nbyte é 0.
Parâmetros
s1 - Especifica a primeira string a ser comparada.
s2 - Especifica a segunda string a ser comparada.
nbyte - Especifica o número de bytes a serem comparados.
A função bcopy
A função bcopy copia nbyte bytes da string s1 para a string s2. Strings sobrepostas são tratadas corretamente.
void bcopy(const void *s1, void *s2, int nbyte);
Esta função não retorna nada.
Parâmetros
s1 - Especifica a string de origem.
s2v - Especifica a string de destino.
nbyte - Especifica o número de bytes a serem copiados.
A função memset
A função memset também é usada para definir variáveis de estrutura da mesma forma quebzero. Dê uma olhada em sua sintaxe, fornecida abaixo.
void *memset(void *s, int c, int nbyte);
Esta função retorna um ponteiro para void; na verdade, um ponteiro para a memória do conjunto e você precisa classificá-la de acordo.
Parâmetros
s - Especifica a fonte a ser definida.
c - Especifica o caractere a ser definido em locais de nbyte.
nbyte - Especifica o número de bytes a serem definidos.