PHP exec():为什么我可以访问共享内存,但不能命名为信号量? (错误= 13)

时间:2013-04-23 22:13:14

标签: php c ipc shared-memory semaphore

我正在使用php exec()命令来运行get_value.c。附加到共享内存的get_value.c读取一个值并将其返回给我的PHP脚本。在我最初测试附加到共享内存时,它工作得很好。

然后当我添加信号量**时,sem_open()返回errno = 13.

我在errno上添加了一个切换块,并列出了sem_open man页面中的所有错误情况。错误13没有被困,它只是落到了默认情况。

什么是错误13?

**我创建了具有权限的信号量(0666 | O_CREAT | O_EXCL)。

编辑:一切都在命令行中运行。

1 个答案:

答案 0 :(得分:0)

使用PHP exec("whoami");来确定用户,可能是www-data

这将告诉您用户尝试访问系统资源的用户。然后,您需要启用此用户才能访问这些资源。

此用户通常位于: /etc/apache2/envvars