c - 从 C 运行 shell 脚本

标签 c shell

<分区>

Possible Duplicate:
Running a shell command in a c program

我正在从 C 运行一个 shell 脚本。它是使用 system() 执行的。如何将参数传递给这个脚本?

最佳答案

system 接受一个包含整个命令行的字符串,所以你会通过

system("/your/shell/script 'argument 1' 'argument 2'");

使用 system 很少是个好主意,因为你必须自己转义所有元字符——甚至空格也是个问题,正如你在上面看到的那样。您正在寻找 exec* 函数之一,例如 execv。它的第一个参数是程序的名称(在您的例子中是 /bin/sh 或 shell 脚本本身),第二个参数是一个以 NULL 结尾的参数字符串列表:

char* program = "/your/shell/script";
char* args[3];
args[0] = "argument 1";
args[1] = "argument 2";
args[2] = NULL;
execv(program, args);

关于c - 从 C 运行 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6477057/

相关文章:

C编程; GCC 在运行时崩溃

python - 输入与 raw_input : Python Interactive Shell Application?

c - fork子进程中的静态变量

c++ - C/C++/Obj-C 中的符号数学库

c - 编译时哪个效率更高?

linux - 我有一个文件,我想将其与另一个目录中的所有文件进行比较,以查找哪个文件是相同的

linux - 脚本不在 cron 下运行,而是再次手动运行

linux - 在文本中找到特殊 block ,使用 shell 脚本

python - 如何使用 python 脚本在 sudo 之后执行一组命令

无法从一组字符串中取出数字 - C