Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 ex-
     cept 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.

     [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), minherit(2), mprotect(2), munmap(2)

HISTORY
     The msync() function has been available since 4.3BSD Net/2.  It was modi-
     fied to conform to	IEEE Std 1003.1b-1993 ("POSIX.1")

BUGS
     Writes are	currently done synchronously even if the MS_ASYNC flag is
     specified.

FreeBSD	13.0		       December	21, 2019		  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=msync&sektion=2&manpath=OpenBSD+6.9>

home | help