Skip to content
BSD syscall#154

svc · unix #154

pwrite

Writes to a file descriptor at an explicit offset without altering the file pointer.

Prototype

user_ssize_t pwrite(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 Leopard154
xnu-1699.24.8macOS 10.7 Lion154
xnu-2050.18.24macOS 10.8 Mountain Lion154
xnu-2422.115.4macOS 10.9 Mavericks154
xnu-2782.40.9macOS 10.10 Yosemite154
xnu-3247.1.106macOS 10.11 El Capitan154
xnu-3789.1.32macOS 10.12 Sierra154
xnu-4570.1.46macOS 10.13 High Sierra154
xnu-4903.221.2macOS 10.14 Mojave154
xnu-6153.11.26macOS 10.15 Catalina154
xnu-7195.50.7.100.1macOS 11.0 Big Sur154
xnu-8019.41.5macOS 12.0 Monterey154
xnu-8792.41.9macOS 13.0 Ventura154
xnu-10002.1.13macOS 14.0 Sonoma154
xnu-11215.1.10macOS 15.0 Sequoia154
xnu-11417.101.15macOS 15.4 Sequoia154
xnu-12377.1.9macOS 26.0 Tahoe154
xnu-10002.41.9—154
xnu-10002.61.3—154
xnu-10002.81.5—154
xnu-10063.101.15—154
xnu-10063.121.3—154
xnu-10063.141.1—154
xnu-11215.41.3—154
xnu-11215.61.5—154
xnu-11215.81.4—154
xnu-11417.121.6—154
xnu-11417.140.69—154
xnu-12377.101.15—154
xnu-12377.41.6—154
xnu-12377.61.12—154
xnu-12377.81.4—154
xnu-1486.2.11—154
xnu-1504.15.3—154
xnu-1504.3.12—154
xnu-1504.7.4—154
xnu-1504.9.17—154
xnu-1504.9.26—154
xnu-1504.9.37—154
xnu-1699.22.73—154
xnu-1699.22.81—154
xnu-1699.24.23—154
xnu-1699.26.8—154
xnu-1699.32.7—154
xnu-2050.22.13—154
xnu-2050.24.15—154
xnu-2050.48.11—154
xnu-2050.7.9—154
xnu-2050.9.2—154
xnu-2422.1.72—154
xnu-2422.100.13—154
xnu-2422.110.17—154
xnu-2422.90.20—154
xnu-2782.1.97—154
xnu-2782.10.72—154
xnu-2782.20.48—154
xnu-2782.30.5—154
xnu-3247.10.11—154
xnu-3248.20.55—154
xnu-3248.30.4—154
xnu-3248.40.184—154
xnu-3248.50.21—154
xnu-3248.60.10—154
xnu-3789.21.4—154
xnu-3789.31.2—154
xnu-3789.41.3—154
xnu-3789.51.2—154
xnu-3789.60.24—154
xnu-3789.70.16—154
xnu-4570.20.62—154
xnu-4570.31.3—154
xnu-4570.41.2—154
xnu-4570.51.1—154
xnu-4570.61.1—154
xnu-4570.71.2—154
xnu-4903.231.4—154
xnu-4903.241.1—154
xnu-4903.270.47—154
xnu-6153.101.6—154
xnu-6153.121.1—154
xnu-6153.141.1—154
xnu-6153.41.3—154
xnu-6153.61.1—154
xnu-6153.81.5—154
xnu-7195.101.1—154
xnu-7195.121.3—154
xnu-7195.141.2—154
xnu-7195.60.75—154
xnu-7195.81.3—154
xnu-8019.61.5—154
xnu-8019.80.24—154
xnu-8020.101.4—154
xnu-8020.121.3—154
xnu-8020.140.41—154
xnu-8792.61.2—154
xnu-8792.81.2—154
xnu-8796.101.5—154
xnu-8796.121.2—154
xnu-8796.141.3—154

Notes

Counterpart to pread for thread-safe random writes. With O_APPEND the offset argument is ignored and data is appended atomically. As with write, pwrite returning fewer bytes than requested is not an error and the caller must loop.

Detection

syscall::pwrite:entry in DTrace. ES emits NOTIFY_WRITE on the underlying vnode (rate-limited, no data payload).

Related APIs

writepreadwritevlseekpwritev