[英]How to pass arguments to bash script from a cpp program
我已經分叉了一個子進程,然后使用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]);
}
將c_no
視為任何整數。
這樣做的正確方法是什么?
我已經參考了這個鏈接如何將命令行參數從 C 程序傳遞到 bash 腳本? 但是這個答案使用system
系統調用,我盡量不使用它。
傳遞給程序的第一個參數是它的名稱,因此目前您的號碼以$0
結尾。 args
應該是:
char *args[] = {"./ckpnt.sh", (char *)s.c_str(), NULL};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.