如何将参数从 cpp 程序传递给 bash 脚本
How to pass arguments to bash script from a cpp program
我分叉了一个子进程,然后使用 execv
调用 bash 脚本,我将命令行参数传递给脚本的方式,它不会在执行时打印第一个参数echo
在脚本中。
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]);
}
将 c_no
视为任意整数。
正确的做法是什么?
我已经引用了这个 link How to pass command line arguments from C program to the bash script? 但是这个答案使用了 system
系统调用,我尽量不使用它。
传递给程序的第一个参数是它的名称,因此目前您的号码以 [=11=]
结尾。 args
应该是:
char *args[] = {"./ckpnt.sh", (char *)s.c_str(), NULL};
我分叉了一个子进程,然后使用 execv
调用 bash 脚本,我将命令行参数传递给脚本的方式,它不会在执行时打印第一个参数echo
在脚本中。
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]);
}
将 c_no
视为任意整数。
正确的做法是什么?
我已经引用了这个 link How to pass command line arguments from C program to the bash script? 但是这个答案使用了 system
系统调用,我尽量不使用它。
传递给程序的第一个参数是它的名称,因此目前您的号码以 [=11=]
结尾。 args
应该是:
char *args[] = {"./ckpnt.sh", (char *)s.c_str(), NULL};