Provided by: manpages-pt-dev_20040726-4_all bug

NOME

       msync - sincroniza um arquivo com o mapa de memória

SINOPSE

       #include <unistd.h>
       #include <sys/mman.h>

       #ifdef _POSIX_MAPPED_FILES
       #ifdef _POSIX_SYNCHRONIZED_IO

       int msync(const void *start, size_t length, int flags);

       #endif
       #endif

DESCRIÇÃO

       msync  envia  as alterações feitas em um arquivo mapeado em memória usando mmap(2) de volta para o disco.
       Sem usar esta chamada na há garantia de que alterações serão escritas novamente depois  que  munmap(2)  é
       chamada.  Para  ser  preciso,  a  parte do arquivo que corresponde à área de memória iniciando em start e
       tendo comprimento length  é  atualizada.  O  argumento  flags  pode  ter  os  bits  MS_ASYNC,  MS_SYNC  e
       MS_INVALIDATE  selecionados,  mas  não  MS_ASYNC  e  MS_SYNC ao mesmo tempo.  MS_ASYNC especifica que uma
       atualização está marcada, mas a chamada retorna imediatamente.  MS_SYNC solicita por  uma  atualização  e
       aguarda  até  ela  ser  completada.   MS_INVALIDATE  solicita  para invalidar outros mapeamentos do mesmo
       arquivo (assim que eles possam ser atualizados com os novos valores).

VALORES RETORNADOS

       Em caso  de  sucesso,  zero  é  retornado.  Caso  contrário,  -1  é  retornado,  e  errno  é  selecionado
       adequadamente.

ERROS

       EINVAL start  não  é um multiplo de PAGESIZE, ou qualquer bit exceto MS_ASYNC | MS_INVALIDATE | MS_SYNC é
              selecionado em flags.

       EFAULT A memória indicada (ou uma parte dela) não foi mapeada.

DE ACORDO COM

       POSIX.1b (anteriormente POSIX.4)

VEJA TAMBÉM

       mmap(2), B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.

TRADUZIDO POR LDP-BR em 21/08/2000.

       André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Ademar de Souza Reis  Jr.  <ademar@ademar.org>
       (revisão)