簡體   English   中英

如何將參數從 cpp 程序傳遞給 bash 腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM