Voltar à lista
Linux x86_64Memória#26

msync

Sincroniza com o armazenamento subjacente as alterações feitas em um mapeamento de arquivo MAP_SHARED.

Descrição

Equivalente de `fsync` para memória mapeada — necessário para garantir durabilidade de escritas feitas diretamente na memória mapeada, já que o kernel não garante quando (ou se) elas seriam gravadas de outra forma.

Header: sys/mman.hman 2

Assinatura

int msync(void * addr, size_t length, int flags);

Parâmetros

ParâmetroTipoDescrição
addrvoid *Início da região mapeada a sincronizar.
lengthsize_tTamanho da região.
flagsintMS_ASYNC, MS_SYNC, opcionalmente com MS_INVALIDATE.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1addrvoid *
rsiargumento 2lengthsize_t
rdxargumento 3flagsint

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EBUSY(16)
Dispositivo ou recurso ocupado.
EINVAL(22)
Argumento inválido.
ENOMEM(12)
Memória insuficiente para completar a operação.

Relacionadas