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.9154
xnu-10002.61.3154
xnu-10002.81.5154
xnu-10063.101.15154
xnu-10063.121.3154
xnu-10063.141.1154
xnu-11215.41.3154
xnu-11215.61.5154
xnu-11215.81.4154
xnu-11417.121.6154
xnu-11417.140.69154
xnu-12377.101.15154
xnu-12377.41.6154
xnu-12377.61.12154
xnu-12377.81.4154
xnu-1486.2.11154
xnu-1504.15.3154
xnu-1504.3.12154
xnu-1504.7.4154
xnu-1504.9.17154
xnu-1504.9.26154
xnu-1504.9.37154
xnu-1699.22.73154
xnu-1699.22.81154
xnu-1699.24.23154
xnu-1699.26.8154
xnu-1699.32.7154
xnu-2050.22.13154
xnu-2050.24.15154
xnu-2050.48.11154
xnu-2050.7.9154
xnu-2050.9.2154
xnu-2422.1.72154
xnu-2422.100.13154
xnu-2422.110.17154
xnu-2422.90.20154
xnu-2782.1.97154
xnu-2782.10.72154
xnu-2782.20.48154
xnu-2782.30.5154
xnu-3247.10.11154
xnu-3248.20.55154
xnu-3248.30.4154
xnu-3248.40.184154
xnu-3248.50.21154
xnu-3248.60.10154
xnu-3789.21.4154
xnu-3789.31.2154
xnu-3789.41.3154
xnu-3789.51.2154
xnu-3789.60.24154
xnu-3789.70.16154
xnu-4570.20.62154
xnu-4570.31.3154
xnu-4570.41.2154
xnu-4570.51.1154
xnu-4570.61.1154
xnu-4570.71.2154
xnu-4903.231.4154
xnu-4903.241.1154
xnu-4903.270.47154
xnu-6153.101.6154
xnu-6153.121.1154
xnu-6153.141.1154
xnu-6153.41.3154
xnu-6153.61.1154
xnu-6153.81.5154
xnu-7195.101.1154
xnu-7195.121.3154
xnu-7195.141.2154
xnu-7195.60.75154
xnu-7195.81.3154
xnu-8019.61.5154
xnu-8019.80.24154
xnu-8020.101.4154
xnu-8020.121.3154
xnu-8020.140.41154
xnu-8792.61.2154
xnu-8792.81.2154
xnu-8796.101.5154
xnu-8796.121.2154
xnu-8796.141.3154

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