Arquivo de cabeçalho:
#incluirSintaxe:
void * mmap (endereço void *, tamanho_t, int proteger, int sinalizadores, int arquivados,Argumentos:
A função leva 6 argumentos:
endereço:
Este argumento fornece um endereço inicial preferido para o mapeamento. Se outro mapeamento não existir lá, o kernel escolherá um limite de página próximo e criará o mapeamento; Caso contrário, o kernel escolhe um novo endereço. Se esse argumento for nulo, o kernel pode colocar o mapeamento em qualquer lugar que ache.
comprimento:
Este é o número de bytes que são mapeados.
proteger:
Este argumento é usado para controlar que tipo de acesso é permitido. Este argumento pode ser lógico 'ou' das seguintes bandeiras Prot_read | Prot_write | Prot_exec | Prot_none. Os tipos de acesso de leitura, gravação e execução são as permissões no conteúdo.
bandeiras:
Este argumento é usado para controlar a natureza do mapa. A seguir, alguns valores comuns das bandeiras:
arquivado:
Este é o descritor de arquivo que deve ser mapeado.
desvio:
Isso é compensado de onde o mapeamento de arquivos começou. Em termos simples, o mapeamento se conecta a (desvio) para (deslocamento+comprimento-1) bytes para o arquivo aberto em arquivado descritor.
Valores de retorno:
No sucesso, o mmap () retorna 0; Para falha, a função retorna map_failed.
Pictorialmente, podemos representar a função do mapa da seguinte maneira:
Para unmap a região mapeada Munmap () função é usada:
Sintaxe:
int munmap(vazio *endereço, size_t comprimento);
Valores de retorno:
No sucesso, o Munmap () retorna 0; Para falha, a função retorna -1.
Exemplos:
Agora veremos um programa de exemplo para cada um dos seguintes usando o sistema MMAP () System:
Exemplo 1.c
#incluirNo exemplo1.c alocamos memória usando o MMAP. Aqui usamos prot_read | Proteção prot_write para leitura e escrita na região mapeada. Usamos o map_private | Map_anonymous Flag. Map_Private é usado porque a região de mapeamento não é compartilhada com outros processos, e o map_anonymous é usado porque aqui, não mapeamos nenhum arquivo. Pela mesma razão, o Descritor de arquivo e a desvio O valor está definido como 0.
Exemplo2.c
#incluir