aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2025-10-26 14:57:16 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2025-10-31 14:42:18 +0000
commitc19f161f5f65d61c0152587000eff7cae9492843 (patch)
tree77ab43c80a3c1b74cbdef75947f8142c40be3112
parenta83f433a9d0ef5774e398cf3518834f47323ab2a (diff)
write.2: explain the atomicity guarantees of the writes
(cherry picked from commit 1c8d7bb4cf7a6b19262333b2a9b1dacf3094b938)
-rw-r--r--lib/libc/sys/write.220
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/libc/sys/write.2 b/lib/libc/sys/write.2
index adf60aa91d7a..2f0a9d034038 100644
--- a/lib/libc/sys/write.2
+++ b/lib/libc/sys/write.2
@@ -134,6 +134,26 @@ and
may write fewer bytes than requested;
the return value must be noted,
and the remainder of the operation should be retried when possible.
+.Sh ATOMICITY OF WRITES
+When operating on regular files on local file systems, the effects of
+.Fn write
+are atomic.
+As required by the POSIX standard,
+the
+.Fn read ,
+.Fn write ,
+and
+.Fn ftruncate
+functions and their variations are atomic with respect to
+each other on the file data and metadata for regular files.
+See for instance
+.St -p1003.1-2024
+Volume 2, Section 2.9.7 for more information.
+.Pp
+.Fx
+implements the requirement by taking
+a read/write range lock on the file byte range
+affected by the corresponding function.
.Sh RETURN VALUES
Upon successful completion the number of bytes which were written
is returned.