为什么编译器拒绝我的execv函数调用?

时间:2016-02-17 03:12:07

标签: c compiler-errors execv

我正在尝试使用两个选项cp--preserve执行--interactive命令

在我的代码中,我有:

char const *copy[] = {"/bin/cp","cp","-p","-i",0};

execv(copy[0],copy);

但它给了我这个错误

error: invalid conversion from 'const char**' to 'char* const*'   
error: initializing argument 2 of 'int execv(const char*, char* const*)'

我应该为此做些什么改变?

1 个答案:

答案 0 :(得分:0)

我相信您应该将副本声明为:

char *const copy[] = {"/bin/cp", "cp", "-p", "-i", 0};

请参阅:http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.html