SPM ou Shared Portable Memory é uma API para acessar áreas remotas de memória compartilhada em diferentes processos. Ele simplifica a comunicação entre processos (IPC) e o compartilhamento de estruturas de dados entre processos.
Com memória portátil compartilhada:
Você pode criar e mapear múltiplas regiões de memória compartilhada sem configurar explicitamente um novo IPC.
O acesso às regiões de memória compartilhada é simples, semelhante ao acesso à memória local e virtual.
Oferece uma API portátil para várias arquiteturas e sistemas operacionais.
Na programação C, para trabalhar com memória portátil compartilhada:
Inclua o arquivo de cabeçalho necessário:
#include
Para criar uma região de memória compartilhada, use shmget():
int shmget(chave key_t, tamanho_t tamanho, int shmflg);
Para anexar uma região de memória compartilhada ao processo atual, use shmat():
void *shmat(int shmid, void *shmaddr, int shmflg);
Para separar uma região de memória compartilhada do processo atual, use shmdt():
int shmdt(void *shmaddr);
Para marcar uma região de memória compartilhada para remoção (depois que todos os processos forem concluídos), use shmctl():
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
Para obter detalhes completos e exemplos, consulte as páginas man de shmget, shmat, shmdt e shmctl.