【问题标题】:popen: 'sh: permission denied"popen: 'sh: 权限被拒绝"
【发布时间】:2013-05-27 14:35:25
【问题描述】:

我正在尝试使用 popen。当我执行一些系统命令(例如,让我们说 ls 或其他什么)时,一切正常。但是当我试图执行我的可执行文件时:

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

我收到一个错误: sh:权限被拒绝。

这两个可执行文件(使用 popen 和我想从第一个启动的那个)都属于我的用户帐户并具有“x”权限。

【问题讨论】:

  • 第二个“可执行文件”是否是带有无效 # 的脚本?顶部的线?或者第二个可执行文件是否驻留在没有“执行”权限的另一个驱动器上?
  • 不,它是一个二进制文件,它驻留在同一个驱动器上。而且我可以从命令行运行它,所以看起来可执行文件本身没问题。 Ubuntu 12.04 LTS。
  • 可执行文件真的叫&lt;path&gt;吗?

标签: c linux pipe popen


【解决方案1】:

我会仔细检查该错误消息,因为它应该说明权限被拒绝的相关内容。即如果路径为空,并且您刚刚通过 ./,或者像您的示例中那样有一个额外的空间,您应该会看到

sh: ./: 权限被拒绝

正如您所描述的,听起来您在尝试运行 /bin/sh 时遇到权限被拒绝错误;您似乎更有可能误读了该错误。

【讨论】:

    猜你喜欢
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    相关资源
    最近更新 更多