Manual do PHP
Anterior |  | Próxima

# shmop_open

(PHP 4 >= 4.0.4, PHP 5)

shmop_open -- Cria ou abre um bloco de memória compartilhada

## Descrição

int shmop_open ( int key, string flags, int mode, int size )

shmop_open() pode criar ou abrir um bloco de memória compartilhada.

shmop_open() pega 4 parâmetros: chave, que é usado pelo id do sistema para o bloco de memória compartilhada, esse parâmetro pode ser passado como decimal ou hexadecimal. O segundo parâmetro são flags que você pode usar:

- "a" para acesso (seta SHM_RDONLY para shmat) use essa flag quando você precisar abrir um bloco de memória compartilhada existente como somente leitura

- "c" para criar (seta IPC_CREATE) use essa flag quando você precisar criar um novo bloco de memória compartilhada ou se um segmento com a mesma chave existir, tente abrir isso para ler e escrever

- "w" para ler & acesso à escrita use essa flag quando você precisar ler e escrever para um segmento de bloco de memória compartilhada, use essa flag na maior parte dos casos.

- "n" cria um novo segmento de memória (seta IPC_CREATE|IPC_EXCL) use essa flag quando você quer criar um novo segmento de memória compartilhada mas se um já existir com a mesma flag, irá falhar. Isso é útil para propósitos de segurança, usando isso você pode previnir rápidos exploits.

O terceiro parâmetro é o modo, que são permissões que você deseja designar para o seu segmento de memória, estas são as mesmas permissões para o arquivo. Permissões precisam ser passadas no formato octal ex. 0644. O último parâmetro é o tamanho do bloco de memória compartilhada que você deseja criar em bytes.

> Nota: Nota: o 3rd e 4th devem ser colocados como 0 se você está abrindo um segmento de memória existente. Em caso de sucesso shmop_open() irá retornar um id que você pode usar para acessar o segmento de memória compartilhada que você criou.

Exemplo 1. Cria um novo bloco de memória compartilhada

`<?php $shm_key = ftok(__FILE__,'t'); $shm_id = shmop_open($shm_key, "c", 0644, 100); ?>`

Esse exemplo abre um bloco de memória compartilhada com um id do sistema retornado por ftok().

Anterior | Principal | Próxima
shmop_delete | Acima | shmop_read