Can you use shared memory to communicate between php scripts and c program in windows?
The c program runs all the time and uses memory mapped files ie:
handle1 = CreateFileMapping(
(HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0, sizeof(byte)*BUFFER_SIZE, "my_foo" );
hView = (LPINT) MapViewOfFile(handle1, FILE_MAP_ALL_ACCESS, 0, 0, 0);
For the PHP scripts can I just use the below code to open the memory mapped file created by the c program?
$shmkey = @shmop_open(ftok("my_foo", 'R'), "a", 0644, $buffer_size);
or are c memory mapped files and php shared memory different things?
The PHP shmop functions are just wrappers for the underlying POSIX functions, which doesn’t seem to be available under windows.
From the PHP manual:
Appearently PHP emulates this behaviour within apache, but since it isn’t available in the stand alone binaries it will hardly integrate with the windows equivalents.