php c 通信,用PHP和C共享内存?

您可以使用共享内存在Windows中的php脚本和c程序之间进行通信吗?

C程序始终运行,并使用内存映射文件,即:

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);

对于PHP脚本,我可以仅使用以下代码打开由c程序创建的内存映射文件吗?

$shmkey = @shmop_open(ftok("my_foo", 'R'), "a", 0644, $buffer_size);

还是c内存映射文件和php共享内存不同?

解决方法:

PHP shmop函数只是底层POSIX functions的包装器,在Windows下似乎不可用.

Note: Versions of Windows previous to Windows 2000 do not

support shared memory. Under Windows,

Shmop will only work when PHP is

running as a web server module, such

as Apache or IIS (CLI and CGI will not

work).

显然,PHP在apache中模拟了此行为,但是由于它在独立的二进制文件中不可用,因此很难与Windows等效项集成.

标签:shared-memory,c-3,php,ipc

来源: https://codeday.me/bug/20191210/2103368.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值