execvp-使用转义空格处理arg

execvp-使用转义空格处理arg,c,escaping,whitespace,args,execvp,C,Escaping,Whitespace,Args,Execvp,我正在做一个基本的外壳,它工作正常,但有一个问题。当前如果我提供参数,例如 cat testtextfile execvp命令工作正常。但是,如果我提供类似 cat hello\ world 如果文件名中有空格,该命令将不起作用。我如何让execvp理解此类参数 以下是我的代码摘录,如果我将args3[1]更改为类似“-n”的内容,它确实可以工作: 应该是 args3[1] = "hello world"; 在命令cat hello\world中,您需要转义“hello”和“word”之间

我正在做一个基本的外壳,它工作正常,但有一个问题。当前如果我提供参数,例如

cat testtextfile
execvp命令工作正常。但是,如果我提供类似

cat hello\ world
如果文件名中有空格,该命令将不起作用。我如何让execvp理解此类参数

以下是我的代码摘录,如果我将args3[1]更改为类似“-n”的内容,它确实可以工作:

应该是

args3[1] = "hello world";

在命令
cat hello\world
中,您需要转义“hello”和“word”之间的空格,因为您不希望shell将“hello world”视为两个单词,因此在shell正确处理命令行参数后,
cat
的第一个参数应该是
hello world
,不是
hello\world

您需要提供代码。Execvp对于这种类型的东西应该是完全安全的,所以它很可能是调用代码中的一个问题。
args3[1] = "hello\\ world";
args3[1] = "hello world";