2016-02-27 72 views

回答

0

的第一个参数execvp()需要是要运行的二进制名称。你不能在那里添加额外的参数。参数列表来自&argv[0]。你需要创建一个新的数组来插入你的参数。类似这样的:

char** new_args = malloc((argc + 1) * sizeof(char*)); 
new_args[0] = argv[0]; 
new_args[1] = "-l"; 
memcpy(&new_args[2], &argv[1], (argc - 1) * sizeof(char*)); 
execvp("ls", new_args);