1
我正在尝试使用popen,当我执行一些系统命令(例如,让我们说ls或其他)时,所有的工作都正常,但是当我试图执行我的可执行文件时:popen:'sh:permission denied'
pipe = popen("./ <path>","r");
我得到一个错误: SH:许可被拒绝
(这是我想从第一个推出其采用POPEN和一个)两个可执行文件属于我的用户accound,并有“×”的权限。
我正在尝试使用popen,当我执行一些系统命令(例如,让我们说ls或其他)时,所有的工作都正常,但是当我试图执行我的可执行文件时:popen:'sh:permission denied'
pipe = popen("./ <path>","r");
我得到一个错误: SH:许可被拒绝
(这是我想从第一个推出其采用POPEN和一个)两个可执行文件属于我的用户accound,并有“×”的权限。
我会仔细检查错误信息,因为它应该说什么p否认拒绝接触。也就是说,如果路径是空的,你刚过./,或有一个像你的榜样额外的空间,你应该看到
SH:./:权限被拒绝
正如你描述它,这听起来像你获取权限拒绝尝试运行/ bin/sh时出错;你错误地看错误的可能性更大。
是第二个“可执行文件”脚本,可能是无效的#!在顶部?或者,第二个可执行文件驻留在没有“exec”权限的情况下挂载的另一个驱动器上? – mshildt
不,这是一个二进制文件,它驻留在同一个驱动器上。而且我可以从命令行运行它,所以它看起来好像可执行文件本身。 Ubuntu 12.04 LTS。 – olegst
可执行文件真的叫做''吗? –
jxh