2013-05-31 40 views
1

我正在尝试使用popen,当我执行一些系统命令(例如,让我们说ls或其他)时,所有的工作都正常,但是当我试图执行我的可执行文件时:popen:'sh:permission denied'

pipe = popen("./ <path>","r"); 

我得到一个错误: SH:许可被拒绝

(这是我想从第一个推出其采用POPEN和一个)两个可执行文件属于我的用户accound,并有“×”的权限。

+0

是第二个“可执行文件”脚本,可能是无效的#!在顶部?或者,第二个可执行文件驻留在没有“exec”权限的情况下挂载的另一个驱动器上? – mshildt

+0

不,这是一个二进制文件,它驻留在同一个驱动器上。而且我可以从命令行运行它,所以它看起来好像可执行文件本身。 Ubuntu 12.04 LTS。 – olegst

+0

可执行文件真的叫做''吗? – jxh

回答

0

我会仔细检查错误信息,因为它应该说什么p否认拒绝接触。也就是说,如果路径是空的,你刚过./,或有一个像你的榜样额外的空间,你应该看到

SH:./:权限被拒绝

正如你描述它,这听起来像你获取权限拒绝尝试运行/ bin/sh时出错;你错误地看错误的可能性更大。

相关问题