gpt4 book ai didi

php - 在 php 和 c 中使用共享内存?

转载 作者:搜寻专家 更新时间:2023-10-31 20:56:34 25 4
gpt4 key购买 nike

在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下好像没有。

来自PHP manual :

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 等效项集成。

关于php - 在 php 和 c 中使用共享内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com