Manual Page Result
0
Command: msync | Section: 2 | Source: OpenBSD | File: msync.2
MSYNC(2) FreeBSD System Calls Manual MSYNC(2)
NAME
msync - synchronize a mapped region
SYNOPSIS
#include <sys/mman.h>
int
msync(void *addr, size_t len, int flags);
DESCRIPTION
The msync() system call writes all pages with shared modifications in the
specified region starting from addr and continuing for len bytes. addr
should be a multiple of the page size. Any required synchronization of
memory caches will also take place at this time. Filesystem operations
on a file that is mapped for shared modifications are unpredictable
except after an msync().
The flags argument is the bitwise OR of zero or more of the following
values:
MS_ASYNC Perform asynchronous writes.
MS_SYNC Perform synchronous writes.
MS_INVALIDATE Invalidate cached data after writing.
RETURN VALUES
Upon successful completion, the value 0 is returned; otherwise the
value -1 is returned and the global variable errno is set to indicate the
error.
ERRORS
The following errors may be reported:
[EBUSY] The MS_INVALIDATE flag was specified and a portion of
the specified region was locked with mlock(2).
[EINVAL] The specified flags argument was invalid.
[EINVAL] The addr parameter was not page aligned or addr and
size specify a region that would extend beyond the end
of the address space.
[EPERM] The addr and len parameters specify a region which
contains at least one page marked immutable.
[ENOMEM] Addresses in the specified region are outside the
range allowed for the address space of the process, or
specify one or more pages which are unmapped.
[EIO] An I/O error occurred while writing.
SEE ALSO
madvise(2), mimmutable(2), minherit(2), mprotect(2), munmap(2)
HISTORY
The msync() function has been available since 4.3BSD-Net/2. It was
modified to conform to IEEE Std 1003.1b-1993 ("POSIX.1b")
BUGS
Writes are currently done synchronously even if the MS_ASYNC flag is
specified.
FreeBSD 14.1-RELEASE-p8 January 21, 2024 FreeBSD 14.1-RELEASE-p8