2016-02-27 74 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);