Skip to content
BSD syscall#153

svc · unix #153

pread

Reads from a file descriptor at an explicit offset without altering the file pointer.

Prototype

user_ssize_t pread(int fd, user_addr_t buf, user_size_t nbyte, off_t offset);

Returns: user_ssize_t

Arguments

NameTypeDirDescription
fdint-
bufuser_addr_t-
nbyteuser_size_t-
offsetoff_t-

Version history

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard153
xnu-1699.24.8macOS 10.7 Lion153
xnu-2050.18.24macOS 10.8 Mountain Lion153
xnu-2422.115.4macOS 10.9 Mavericks153
xnu-2782.40.9macOS 10.10 Yosemite153
xnu-3247.1.106macOS 10.11 El Capitan153
xnu-3789.1.32macOS 10.12 Sierra153
xnu-4570.1.46macOS 10.13 High Sierra153
xnu-4903.221.2macOS 10.14 Mojave153
xnu-6153.11.26macOS 10.15 Catalina153
xnu-7195.50.7.100.1macOS 11.0 Big Sur153
xnu-8019.41.5macOS 12.0 Monterey153
xnu-8792.41.9macOS 13.0 Ventura153
xnu-10002.1.13macOS 14.0 Sonoma153
xnu-11215.1.10macOS 15.0 Sequoia153
xnu-11417.101.15macOS 15.4 Sequoia153
xnu-12377.1.9macOS 26.0 Tahoe153
xnu-10002.41.9153
xnu-10002.61.3153
xnu-10002.81.5153
xnu-10063.101.15153
xnu-10063.121.3153
xnu-10063.141.1153
xnu-11215.41.3153
xnu-11215.61.5153
xnu-11215.81.4153
xnu-11417.121.6153
xnu-11417.140.69153
xnu-12377.101.15153
xnu-12377.41.6153
xnu-12377.61.12153
xnu-12377.81.4153
xnu-1486.2.11153
xnu-1504.15.3153
xnu-1504.3.12153
xnu-1504.7.4153
xnu-1504.9.17153
xnu-1504.9.26153
xnu-1504.9.37153
xnu-1699.22.73153
xnu-1699.22.81153
xnu-1699.24.23153
xnu-1699.26.8153
xnu-1699.32.7153
xnu-2050.22.13153
xnu-2050.24.15153
xnu-2050.48.11153
xnu-2050.7.9153
xnu-2050.9.2153
xnu-2422.1.72153
xnu-2422.100.13153
xnu-2422.110.17153
xnu-2422.90.20153
xnu-2782.1.97153
xnu-2782.10.72153
xnu-2782.20.48153
xnu-2782.30.5153
xnu-3247.10.11153
xnu-3248.20.55153
xnu-3248.30.4153
xnu-3248.40.184153
xnu-3248.50.21153
xnu-3248.60.10153
xnu-3789.21.4153
xnu-3789.31.2153
xnu-3789.41.3153
xnu-3789.51.2153
xnu-3789.60.24153
xnu-3789.70.16153
xnu-4570.20.62153
xnu-4570.31.3153
xnu-4570.41.2153
xnu-4570.51.1153
xnu-4570.61.1153
xnu-4570.71.2153
xnu-4903.231.4153
xnu-4903.241.1153
xnu-4903.270.47153
xnu-6153.101.6153
xnu-6153.121.1153
xnu-6153.141.1153
xnu-6153.41.3153
xnu-6153.61.1153
xnu-6153.81.5153
xnu-7195.101.1153
xnu-7195.121.3153
xnu-7195.141.2153
xnu-7195.60.75153
xnu-7195.81.3153
xnu-8019.61.5153
xnu-8019.80.24153
xnu-8020.101.4153
xnu-8020.121.3153
xnu-8020.140.41153
xnu-8792.61.2153
xnu-8792.81.2153
xnu-8796.101.5153
xnu-8796.121.2153
xnu-8796.141.3153

Notes

Useful for concurrent random-access reads from multiple threads sharing the same fd. The offset is ignored for objects that are not seekable, where pread returns ESPIPE. On macOS pread is safe to interleave with other pread/pwrite operations as no implicit lseek occurs.

Detection

syscall::pread:entry in DTrace; arg0=fd, arg1=buf, arg2=size, arg3=offset. fs.read kernel probes capture VOP_READ activity.

Related APIs

readpwritereadvlseekpreadv