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