msync - Synchronizes a mapped file
[Digital] The following function declaration does not conform to current standards and is supported only for backward compatibility:
#include <sys/types.h> #include <sys/mman.h>
Interfaces documented on this reference page conform to industry standards as follows:
Refer to the standards(5) reference page for more information about industry standards and associated tags.
Specifies the starting address of the region to be synchronized. Specifies the length in bytes of the region to be synchronized. This parameter must be a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE). If len is not a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE), the length of the region will be rounded up to the next multiple of the page size. Specifies one of the following symbolic constants defined in the sys/mman.h file: Specifies an asynchronous cache flush. The msync() function returns after the system schedules all write operations. Specifies a synchronous cache flush. The msync() function returns only after the system completes all write operations. Specifies invalidating all cached pages. New copies of the pages must be obtained from the file system the next time they are referenced.
The msync() function controls the caching operations of a mapped file region. The msync() function can be used to ensure that modified pages in the region are transferred to the file's underlying storage device. (However, normal system activity can cause pages to be written to a storage device, so there is no guarantee that a call to the msync() function is the only control over when pages are written.) You can also use the function to control the visibility of modifications with respect to file system operations.
After a successful call to the msync() function with the flags parameter set to MS_SYNC, all previous modifications to the mapped region are visible to processes using the read() function. Previous modifications to the file using the write() function might be lost.
After a successful call to the msync() function with the flags parameter set to MS_INVALIDATE, all previous modifications to the file using the write() function are visible to the mapped region. Previous direct modifications to the mapped region might be lost.
Upon successful completion, the msync() function returns 0 (zero). Otherwise, the msync() function returns -1 and sets errno to indicate the error.
The msync() function sets errno to the specified values for the following conditions:
[Digital] The range [addr, addr + len) includes an invalid address. The addr parameter is not a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE). An I/O error occurred while reading from or writing to the file system. The range specified by [addr, addr + len) is invalid for a process' address space, or the range specifies one or more unmapped pages.
Functions: fsync(2), mmap(2), read(2), write(2)
Standards: standards(5) delim off