权限被拒绝:C 中的系统调用

权限被拒绝:C 中的系统调用

我正在尝试使用 C 语言编写和执行 bash 脚本。目的是用 C 编写一个个人项目,看看是否也可以包含 bash 功能。我创建了一个简单的 C 文件script.c(编译为script)进行测试,但出现了错误:

bash: ./script: Permission denied

我尝试使用 sudo 权限运行,但仍然收到类似的响应:

sudo: unable to execute ./script: Permission denied

我打算用这个文件运行 bash 命令:echo "hello"使用 C

这是 C 文件:

#include <stdio.h>
#include <stdlib.h>

#define SHELLSCRIPT "\
        #/bin/bash \n\
        echo \"hello\" \n\
"

int main() {
        puts("executing script");
        system(SHELLSCRIPT);
        return 0;
}

我大胆猜测,那行代码system(SHELLSCRIPT);就是原因,因为即使是 root 用户也无法进行系统调用。但是,在浏览互联网后,大家一致认为可以以这种方式执行 bash 脚本。任何帮助或见解都值得赞赏。

答案1

看来我没有正确安装我工作的硬盘驱动器并赋予正确的权限。因此文件无法正常工作。此程序在不同的正确安装的驱动器中创建时可以正常工作。

相关内容