You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

101 lines
2.3 KiB

<?php
/*
Linha de comando
ipcs -> mostra blocos de memoria alocados
ipcrm -m "shmid" -> remove o bloco de memória referenciado por shmid
session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);
*/
define("SHM_IPC_FILE_AGENTE", "/var/www/html/aplicativo/configs/ipcagente.txt");
define("SHM_SIZE_AGENTE", 1024);
define("SHM_SESSION_AGENTE", "SS_ShmIdAgente");
define("SHM_IPC_FILE_FILA", "/var/www/html/aplicativo/configs/ipcfila.txt");
define("SHM_SIZE_FILA", 1024);
define("SHM_SESSION_FILA", "SS_ShmIdFila");
define("SHM_ACESS_MODE", 'c');
define("SHM_ACESS_PERMISSION", 0644);
function ShmGetId($file) {
if (!file_exists($file)) {
touch($file);
}
return ftok($file, 'R');
}
function ShmGetKey($file, $fsize) {
$shmkey = shmop_open(ShmGetId($file), SHM_ACESS_MODE, SHM_ACESS_PERMISSION, $fsize);
if (!$shmkey) {
return false;
} else {
return $shmkey;
}
}
function ShmWrite($fdata, $shmkey) {
$fsize = strlen($fdata);
$shm_bytes_written = shmop_write($shmkey, $fdata, 0);
if ($shm_bytes_written != $fsize) {
return false;
} else {
return $shm_bytes_written;
}
}
function ShmRead($shmkey, $shm_size) {
$my_string = shmop_read($shmkey, 0, $shm_size);
if (!$my_string) {
return false;
} else {
return $my_string;
}
}
function ShmWriteVar($fdata, $shmkey) {
$fdata = serialize($fdata);
$fsize = strlen($fdata);
$shm_bytes_written = shmop_write($shmkey, $fdata, 0);
if ($shm_bytes_written != $fsize) {
return false;
} else {
return $shm_bytes_written;
}
}
function ShmReadVar($shmkey, $shm_size) {
$my_string = shmop_read($shmkey, 0, $shm_size);
if (!$my_string) {
return false;
} else {
return unserialize($my_string);
}
}
function ShmDelete($shmkey) {
$size = @shmop_size($shmkey);
if (!@shmop_delete($shmkey)) {
ShmClose($shmkey);
return false;
} else {
ShmClose($shmkey);
return true;
}
}
function ShmClose($shmkey) {
return shmop_close($shmkey);
}
function ShmIsKey($file) {
return shmop_open(ShmGetId($file), SHM_ACESS_MODE, 0, 0);
}
?>