为什么execvp接受2个参数

时间:2018-01-30 07:14:30

标签: c linux exec

在c:

中假设以下代码
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char * argv[]) {
  char *args[] = {"/bin/echo", "1", NULL};
  execvp(args[0], args);
}

为什么execvp接受2个参数?为什么不能execvp(args)在内部它会自动抓取可执行文件从args[0]运行?

1 个答案:

答案 0 :(得分:3)

如果您希望流程的“名称”(在您的情况下为ssh://jill@jill.com:4242/~jack/projects/jillweb)与实际的可执行程序不同,该怎么办?这是一个有效的用例,处理这两种情况的最简单的解决方案是我们现在拥有的两个参数args[0]