int main(void)
{
int e;
char *envp[] = {NULL};
char *argv[] = {"/bin/ls", "-1",NULL};
//char *argv[] = {"/bin/ls", "-1",NULL};
argv[1]= "0";;
//e = execve("/bin/ls", argv, envp);
return 0;
}
我已经使用了这段代码,但是根据execve的声明,它接受第二个参数作为指向char的const指针,但是我没有使用const就通过了,但它工作正常。为什么????
答案 0 :(得分:0)
在C中,您始终可以将char*
传递给接受const char*
的函数,该函数是兼容/合法的分配。当然,您也可以传递const char*
参数。但是通常,const
第一个参数中的execve
限定词只是说函数execve
不会对其进行修改。
另请参阅以下相关文章:Why can't I pass a char ** to a function which expects a const char **?