Документация по LinuxLinuxDoc.Ru 🔍

readv, writev - записывают и считывают данные из нескольких буферов

НАЗВАНИЕ
readv, writev - записывают и считывают данные из
нескольких буферов

СИНТАКСИС

#include

int readv(int filedes, const struct iovec *vector,
size_t count);

int writev(int filedes, const struct iovec *vector,
size_t count);

ОПИСАНИЕ

Функция readv() cчитывает count блоков из файла,
ассоциированного с описателем filedes, в несколько
буферов, описанных в vector.

Функция writev() записывает минимум count блоков,
описанных в vector, в файл, ассоциированный с описателем
filedes.

vector указывает на структуру structiovec, заданную в
как

struct iovec {
void *iov_base; /* Начальный адрес */
size_t iov_len; /* Количество байтов */
};

Буферы обрабатываются в следующем порядке: vector[0], vec-
tor[1], ... vector[count].

Функция readv() работает так же, как и read(2), за
исключением того, что заполняет несколько буферов.

Функция writev() работает так же, как и write(2), за
исключением того, что будет записано несколько буферов.


ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция readv() возвращает количество байтов или -1 в
случае ошибки; функция writev() возвращает количество
записанных байтов.

КОДЫ ОШИБОК
Функции readv() и writev() могут завершиться ошибкой и
установить одно из следующих значений errno:

EBADF ( fd - это некорректный описатель файла);

EINVAL ( fd невозможно прочитать readv() или записать
writev());

EFAULT ( buf находится за пределами адресного пространства
процесса);

EAGAIN (при вызове open() были выбраны неблокирующиеся
операции ввода/вывода, поэтому чтение или запись не
могут быть выполнены немедленно);

EINTR (чтение или запись были прерваны до передачи
данных).

СООТВЕТСТВИЕ СТАНДАРТАМ
Неизвестно.

НАЙДЕННЫЕ ОШИБКИ
Не следует смешивать вызовы к функциям, таким, как readv()
или writev(), которые действуют на файловых описателях, с
функциями библиотеки stdio, поскольку результат этого
непредсказуем.
Читать новости Linux в Telegram
Linux - readv, writev - записывают и считывают данные из нескольких буферов
Мы в соцсетях ✉