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.9—153
xnu-10002.61.3—153
xnu-10002.81.5—153
xnu-10063.101.15—153
xnu-10063.121.3—153
xnu-10063.141.1—153
xnu-11215.41.3—153
xnu-11215.61.5—153
xnu-11215.81.4—153
xnu-11417.121.6—153
xnu-11417.140.69—153
xnu-12377.101.15—153
xnu-12377.41.6—153
xnu-12377.61.12—153
xnu-12377.81.4—153
xnu-1486.2.11—153
xnu-1504.15.3—153
xnu-1504.3.12—153
xnu-1504.7.4—153
xnu-1504.9.17—153
xnu-1504.9.26—153
xnu-1504.9.37—153
xnu-1699.22.73—153
xnu-1699.22.81—153
xnu-1699.24.23—153
xnu-1699.26.8—153
xnu-1699.32.7—153
xnu-2050.22.13—153
xnu-2050.24.15—153
xnu-2050.48.11—153
xnu-2050.7.9—153
xnu-2050.9.2—153
xnu-2422.1.72—153
xnu-2422.100.13—153
xnu-2422.110.17—153
xnu-2422.90.20—153
xnu-2782.1.97—153
xnu-2782.10.72—153
xnu-2782.20.48—153
xnu-2782.30.5—153
xnu-3247.10.11—153
xnu-3248.20.55—153
xnu-3248.30.4—153
xnu-3248.40.184—153
xnu-3248.50.21—153
xnu-3248.60.10—153
xnu-3789.21.4—153
xnu-3789.31.2—153
xnu-3789.41.3—153
xnu-3789.51.2—153
xnu-3789.60.24—153
xnu-3789.70.16—153
xnu-4570.20.62—153
xnu-4570.31.3—153
xnu-4570.41.2—153
xnu-4570.51.1—153
xnu-4570.61.1—153
xnu-4570.71.2—153
xnu-4903.231.4—153
xnu-4903.241.1—153
xnu-4903.270.47—153
xnu-6153.101.6—153
xnu-6153.121.1—153
xnu-6153.141.1—153
xnu-6153.41.3—153
xnu-6153.61.1—153
xnu-6153.81.5—153
xnu-7195.101.1—153
xnu-7195.121.3—153
xnu-7195.141.2—153
xnu-7195.60.75—153
xnu-7195.81.3—153
xnu-8019.61.5—153
xnu-8019.80.24—153
xnu-8020.101.4—153
xnu-8020.121.3—153
xnu-8020.140.41—153
xnu-8792.61.2—153
xnu-8792.81.2—153
xnu-8796.101.5—153
xnu-8796.121.2—153
xnu-8796.141.3—153

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