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

FreeBSD Manual Pages

  
 
  

home | help
MSYNC(2)		    BSD	System Calls Manual		      MSYNC(2)

NAME
     msync -- synchronize a mapped region

LIBRARY
     Standard C	Library	(libc, -lc)

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 of the process's address space back to permanent stor-
     age, and, if requested, invalidates cached	data mapped in the region.  If
     len is 0, all modified pages within the region containing addr will be
     flushed; if len is	non-zero, only modified	pages containing addr and len
     succeeding	locations will be flushed.  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 formed by or'ing 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, a value of 0 is returned.  Otherwise, a value
     of	-1 is returned and 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.

     [EINVAL]		The addr parameter did not specify an address part of
			a mapped region.

     [EINVAL]		The len	parameter was negative.

     [EIO]		An I/O error occurred while writing to the file	sys-
			tem.

     [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.

SEE ALSO
     mlock(2), mmap(2),	munlock(2)

STANDARDS
     The msync() function conforms to IEEE Std 1003.1b-1993 ("POSIX.1")

HISTORY
     The msync() function first	appeared in 4.4BSD.  It	was modified to	con-
     form to IEEE Std 1003.1b-1993 ("POSIX.1") in NetBSD 1.3.

BSD			       October 17, 2005				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY

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

home | help