В этой главе описываются все вспомогательные функции, которые используются при программировании сокетов. Другие вспомогательные функции описаны в главах « Порты и службы» и «Порядок байтов в сети».
Функция записи
Функция записи пытается записать n-байтовые байты из буфера, на который указывает buf, в файл, связанный с дескриптором открытого файла, fildes .
Вы также можете использовать функцию send () для отправки данных другому процессу.
#include <unistd.h> int write(int fildes, const void *buf, int nbyte);
После успешного завершения write () возвращает количество байтов, фактически записанных в файл, связанный с fildes. Это число никогда не превышает nbyte. В противном случае возвращается -1.
параметры
-
fildes — это дескриптор сокета, возвращаемый функцией сокета.
-
buf — это указатель на данные, которые вы хотите отправить.
-
nbyte — количество записываемых байтов. Если nbyte равно 0, write () вернет 0 и не будет иметь других результатов, если файл является обычным файлом; в противном случае результаты не уточняются.
fildes — это дескриптор сокета, возвращаемый функцией сокета.
buf — это указатель на данные, которые вы хотите отправить.
nbyte — количество записываемых байтов. Если nbyte равно 0, write () вернет 0 и не будет иметь других результатов, если файл является обычным файлом; в противном случае результаты не уточняются.
Функция чтения
Функция чтения пытается прочитать n-байтовые байты из файла, связанного с буфером, fildes, в буфер, на который указывает buf.
Вы также можете использовать функцию recv () для чтения данных в другой процесс.
#include <unistd.h> int read(int fildes, const void *buf, int nbyte);
После успешного завершения write () возвращает количество байтов, фактически записанных в файл, связанный с fildes. Это число никогда не превышает nbyte. В противном случае возвращается -1.
параметры
-
fildes — это дескриптор сокета, возвращаемый функцией сокета.
-
buf — это буфер для чтения информации.
-
nbyte — это количество байтов для чтения.
fildes — это дескриптор сокета, возвращаемый функцией сокета.
buf — это буфер для чтения информации.
nbyte — это количество байтов для чтения.
Функция вилки
Функция fork создает новый процесс. Новый процесс, называемый дочерним процессом, будет точной копией вызывающего процесса (родительского процесса). Дочерний процесс наследует множество атрибутов от родительского процесса.
#include <sys/types.h> #include <unistd.h> int fork(void);
После успешного завершения fork () возвращает 0 дочернему процессу, а идентификатор процесса дочернего процесса — родительскому процессу. В противном случае -1 возвращается родительскому процессу, дочерний процесс не создается, и errno устанавливается для указания ошибки.
параметры
-
void — означает, что параметр не требуется.
void — означает, что параметр не требуется.
Функция bzero
Функция bzero помещает n-байтовые нулевые байты в строку s . Эта функция используется для установки всех структур сокетов с нулевыми значениями.
void bzero(void *s, int nbyte);
Эта функция ничего не возвращает.
параметры
-
s — определяет строку, которая должна быть заполнена нулевыми байтами. Это будет точка структурной переменной сокета.
-
nbyte — указывает количество байтов, которые должны быть заполнены нулевыми значениями. Это будет размер структуры сокета.
s — определяет строку, которая должна быть заполнена нулевыми байтами. Это будет точка структурной переменной сокета.
nbyte — указывает количество байтов, которые должны быть заполнены нулевыми значениями. Это будет размер структуры сокета.
Функция bcmp
Функция bcmp сравнивает байтовую строку s1 с байтовой строкой s2. Предполагается, что длина обеих строк составляет n байтов.
int bcmp(const void *s1, const void *s2, int nbyte);
Эта функция возвращает 0, если обе строки идентичны, 1 в противном случае. Функция bcmp () всегда возвращает 0, если nbyte равно 0.
параметры
-
s1 — указывает первую строку для сравнения.
-
s2 — определяет вторую строку для сравнения.
-
nbyte — определяет количество байтов для сравнения.
s1 — указывает первую строку для сравнения.
s2 — определяет вторую строку для сравнения.
nbyte — определяет количество байтов для сравнения.
Функция bcopy
Функция bcopy копирует байты n байтов из строки s1 в строку s2. Перекрывающиеся строки обрабатываются правильно.
void bcopy(const void *s1, void *s2, int nbyte);
Эта функция ничего не возвращает.
параметры
-
s1 — указывает исходную строку.
-
s2v — указывает строку назначения.
-
nbyte — указывает количество копируемых байтов.
s1 — указывает исходную строку.
s2v — указывает строку назначения.
nbyte — указывает количество копируемых байтов.
Функция memset
Функция memset также используется для установки структурных переменных так же, как bzero . Посмотрите на его синтаксис, приведенный ниже.
void *memset(void *s, int c, int nbyte);
Эта функция возвращает указатель на void; на самом деле, указатель на установленную память и вам нужно соответственно ее кастовать.
s — указывает источник, который будет установлен.
c — Указывает символ для установки на nbyte мест.
nbyte — определяет количество байтов, которые будут установлены.