所以我正在寫一個程序,其中參數如下所示:C:execvp()和命令行參數
program start emacs file.c
甚至
program wait
在本質上,第一個參數(argv [0])是程序名稱,後跟用戶輸入。
在我的代碼中,我調用了execvp。事情是,我不完全確定我在援引正確的論點。
if (pid == 0) {
execvp(argv[1], argv); //Line of interest
exit(1);
}
是argv [1]並且argv是通過上述功能的正確參數嗎?我看了手冊頁,他們有道理,但對於這種情況可能不正確。 謝謝!
你會從答案中注意到常見主題:'execvp(cmds [n],&cmds [n]);'或者等價的。也就是說,將參數數組的第n個元素作爲第一個參數傳遞給'execvp()',並且將參數數組的第n個元素的地址作爲第二個參數傳遞 - 在您的具體情況下, execvp(argv [1],&argv [1]);'。很明顯,你在技術上沒有義務這麼做(爭論是獨立的),但你需要一個很好的理由來做其他事情。 –