system 获取包含整个命令行的单个字符串,因此您将通过
system("/your/shell/script 'argument 1' 'argument 2'");
Run Code Online (Sandbox Code Playgroud)
使用它很少是一个好主意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);
Run Code Online (Sandbox Code Playgroud)