日期:2014-05-16  浏览次数:20718 次

请教一下共享内存的问题
新装的一个Linux系统,并初步配了一下apache
但是程序运行出错,具体情况为:

----------------------
shmid   =   shmget(shmkey,shmsize,0777|IPC_CREAT|IPC_EXCL);

返回-1.错误类型是:Permission   denied

shmid   =   shmget(shmkey,shmsize,0777);

也是返回-1,错误类型是:No   such   file   or   directory
----------------------

这个情况是在apache调用运行cgi的时候出现,当我单独写一个main函数,只使用这个函数的时候能够顺利申请到共享内存.

是否是因为我的apache配置有问题?还是其他原因?请各位帮忙,谢谢了!

------解决方案--------------------
你直接运行cgi脚本如何?看你说的好像能运行正确。

我觉得是权限问题,apache缺省不能用root用户运行,你需要重新编译源码才能以root用户运行

你可以用apache运行的用户(有的系统是apache,有的是wwwrun),直接运行脚本看能否通过,如果不行,那就确认是用户权限问题来了。