---
name: "iovec"
section: "3type"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/iovec"
---

# iovec(3type)

Vector I/O data structure

## NAME

iovec - Vector I/O data structure

## LIBRARY

Standard C library (*libc*)

## SYNOPSIS

```
#include <sys/uio.h>
```

**struct iovec {**     **void   \*iov\_base;**  /\* Starting address \*/     **size\_t  iov\_len;**   /\* Size of the memory pointed to by  *iov\_base*. \*/ **};**

## DESCRIPTION

Describes a region of memory, beginning at *iov\_base* address and with the size of *iov\_len* bytes. System calls use arrays of this structure, where each element of the array represents a memory region, and the whole array represents a vector of memory regions. The maximum number of *iovec* structures in that array is limited by **IOV\_MAX** (defined in *\<limits.h\>*, or accessible via the call *sysconf(\_SC\_IOV\_MAX)*).

## STANDARDS

POSIX.1-2024.

## HISTORY

SUSv1, POSIX.1-2001 XSI.

## NOTES

The following header also provides this type: *\<sys/socket.h\>*.

## SEE ALSO

[**process\_madvise**(2)](/process_madvise/2.md), [**readv**(2)](/readv/2.md)
