[英]C++ What is my own file name?
我有一段調用系統命令的C ++代碼。我想將我自己的C ++可執行文件的文件名傳遞給系統命令。.有人知道怎么做嗎? 因此,例如,我的C ++代碼稱為“ switch-5”。
system(“ ./ script.sh switch-5”);
有人有任何線索嗎?
您的可執行文件名稱是argv中傳遞的第一個參數。
要測試,只需運行:
int main(int argc, char **argv)
{
printf("My program name: '%s'\n", argv[0]);
return 0;
}
(我假設您知道如何將其與腳本名稱結合使用,以使字符串傳遞給system()。)
傳遞給main的argv[0]
是可執行文件的名稱。
在應用啟動期間將其存儲在全局變量中:
static char *selfname;
int main(int argc, char **argv)
{
selfname = argv[0];
// etc.
}
請注意,argv [0]確切包含用於啟動程序的內容,包括相對路徑或絕對路徑,例如:“ ./ programname”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.