绕过execve()的const char*要求

绕过execve()的const char*要求,c,exec,constants,C,Exec,Constants,我正在尝试接受用户输入并将其作为文件名传递给execve() 我使用malloc()为char*filename分配足够的内存,然后用我要执行的文件的路径填充它 但是,execve(),需要一个const char*,因此它无法编译。有没有办法绕过这个?我见过一些人对shell使用execve(),因此我认为可以将用户定义的字符数组传递给它。 我无法使用execvp()或任何其他自动搜索路径的变体 谢谢 您所说的“它不会编译,因为execve()需要const char*”是胡说八道。始终可以将

我正在尝试接受用户输入并将其作为文件名传递给
execve()

我使用
malloc()
char*filename
分配足够的内存,然后用我要执行的文件的路径填充它

但是,
execve()
,需要一个
const char*
,因此它无法编译。有没有办法绕过这个?我见过一些人对shell使用
execve()
,因此我认为可以将用户定义的字符数组传递给它。
我无法使用
execvp()
或任何其他自动搜索路径的变体


谢谢

您所说的“它不会编译,因为
execve()
需要
const char*
”是胡说八道。始终可以将非常量变量传递给常量方法参数。所以你的问题应该在别的地方。请发布更多代码。

我发现了,这是一个相当愚蠢的错误。在第二个参数中,我将
arg[0]
替换为
arg
。我投票删除这篇文章,因为它可能不会帮助其他人。