我想创建一个可执行脚本这不是可读/可写
然而,由于解释器需要读取该文件,因此不可能直接执行此操作。因此我想知道是否可以将解释器与我的脚本一起显式加载到 C 程序中。
这将允许我根据我的需要设置 C 程序的权限。
答案1
您可以使用system()
函数从 C 应用程序调用 shell 脚本:
system() 通过调用 /bin/sh -c command 执行 command 中指定的命令,并在命令完成后返回。在命令执行过程中,SIGCHLD 将被阻塞,SIGINT 和 SIGQUIT 将被忽略。
例子:
#include <stdlib.h>
int main(int argc, char *argv[]) {
char* command = "\
for i in 1 2 3 4 5;\
do echo \"$i\"; \
done";
system(command);
return 0;
}
跑步:
$ gcc test.c -o test
$ chmod 100 test
$ ./test
1
2
3
4
5
请记住,参数是命令字符串,因此必须以分号结束行。您还必须转义引号。