所以我正在写一个程序,其中参数如下所示: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]);'。很明显,你在技术上没有义务这么做(争论是独立的),但你需要一个很好的理由来做其他事情。 –