<分区>
Possible Duplicate:
Running a shell command in a c program
我正在从 C 运行一个 shell 脚本。它是使用 system() 执行的。如何将参数传递给这个脚本?
<分区>
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/