MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions                            msync(3C)



NAME
     msync - synchronize memory with physical storage

SYNOPSIS
     #include 

     int msync(void *addr, sizet len, int flags);


DESCRIPTION
     The  msync() function writes all modified  copies  of  pages
     over  the  range  [addr,  addr  ]  len)  to  the  underlying
     hardware, or invalidates any copies so that  further  refer-
     ences to the pages will be obtained by the system from their
     permanent storage locations. The  permanent  storage  for  a
     modified  MAPSHARED  mapping is the file the page is mapped
     to; the permanent storage for a modified MAPRIVATE mapping
     is its swap area.


     The flags argument is a bit pattern built from the following
     values:

     MSASYNC         perform asynchronous writes


     MSYNC          perform synchronous writes


     MSINVALIDATE    invalidate mappings



     If flags is MSASYNC or MSYNC, the  function  synchronizes
     the  file  contents  to  match  the  current contents of the
     memory region.

         o    All write references  to  the  memory  region  made
              prior  to  the  call are visible by subsequent read
              operations on the file.

         o    All writes to the same portion of the file prior to
              the  call  may or may not be visible by read refer-
              ences to the memory region.

         o    Unmodified pages in the  specified  range  are  not
              written to the underlying hardware.


     If flags is MSASYNC, the function  may  return  immediately
     once  all  write  operations  are  scheduled;  if  flags  is
     MSYNC, the  function  does  not  return  until  all  write



SunOS 5.11          Last change: 24 Jul 2002                    1






Standard C Library Functions                            msync(3C)



     operations are completed.


     If flags is MSINVALIDATE,  the  function  synchronizes  the
     contents of the memory region to match the current file con-
     tents.

         o    All writes to the mapped portion of the  file  made
              prior  to  the  call are visible by subsequent read
              references to the mapped memory region.

         o    All write references prior to the call, by any pro-
              cess,  to memory regions mapped to the same portion
              of the file using MAPSHARED, are visible  by  read
              references to the region.


     If msync() causes any write to the  file,  then  the  file's
     stctime and stmtime fields are marked for update.

RETURN VALUES
     Upon successful completion, msync() returns 0; otherwise, it
     returns -1 and sets errno to indicate the error.

ERORS
     The msync() function will fail if:

     EBUSY     Some or all of the addresses in the  range  [addr,
               addr  ]  len)  are  locked  and  MSYNC  with the
               MSINVALIDATE option is specified.


     EAGAIN    Some or all pages in  the  range  [addr,   addr  ]
               len) are locked for I/O.


     EINVAL    The addr argument is not a multiple of  the   page
               size as returned by sysconf(3C).

               The flags argument  is  not  some  combination  of
               MSASYNC and MSINVALIDATE.


     EIO       An I/O error occurred while reading from or  writ-
               ing to the file system.


     ENOMEM    Addresses in the range [addr, addr ] len) are out-
               side  the  valid  range for the address space of a
               process, or specify one or more pages that are not
               mapped.




SunOS 5.11          Last change: 24 Jul 2002                    2






Standard C Library Functions                            msync(3C)



     EPERM     MSINVALIDATE was specified and one or more of the
               pages is locked in memory.


USAGE
     The msync() function should be used by programs that require
     a  memory  object  to  be  in  a known state, for example in
     building transaction facilities.


     Normal system activity can cause  pages  to  be  written  to
     disk.   Therefore,  there  are no guarantees that msync() is
     the only control over when pages are or are not  written  to
     disk.

ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Standard                    
    
     MT-Level                     MT-Safe                     
    


SEE ALSO
     memcntl(2),  mmap(2),  sysconf(3C),   attributes(5),   stan-
     dards(5)






















SunOS 5.11          Last change: 24 Jul 2002                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™