如何从cpp程序向bash脚本传递参数



我分叉了一个子进程,然后它使用execv调用bash脚本,这是我将命令行参数传递给脚本的方式,它不会在脚本内执行echo $1时打印第一个参数。

std::string s = std::to_string(c_no);    
char *args[] = {(char *)s.c_str(), NULL};
pid_t pid = fork();
if(pid == 0){
execv("./ckpnt.sh", &args[0]);
}

将CCD_ 3视为任意整数。

正确的方法是什么?

我已经重新定义了这个链接。如何将命令行参数从C程序传递到bash脚本?但这个答案使用CCD_ 4系统调用,我尽量不使用它。

传递给程序的第一个参数是它的名称,因此当前您的数字以$0结尾。args应为:

char *args[] = {"./ckpnt.sh", (char *)s.c_str(), NULL};

最新更新