Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将通配符传递给process builder C++中的p>由“类似:”封装 system("cmd arg1 arg2");// C++ Runtime.getRuntime().exec("cmd arg1 arg2");// Java new ProcessBuilder("cmd","arg1","arg2").start();// Java //=============== output cmd 'arg1' 'arg2'_Java_C++_Shell - Fatal编程技术网

将通配符传递给process builder C++中的p>由“类似:”封装 system("cmd arg1 arg2");// C++ Runtime.getRuntime().exec("cmd arg1 arg2");// Java new ProcessBuilder("cmd","arg1","arg2").start();// Java //=============== output cmd 'arg1' 'arg2'

将通配符传递给process builder C++中的p>由“类似:”封装 system("cmd arg1 arg2");// C++ Runtime.getRuntime().exec("cmd arg1 arg2");// Java new ProcessBuilder("cmd","arg1","arg2").start();// Java //=============== output cmd 'arg1' 'arg2',java,c++,shell,Java,C++,Shell,这可以防止参数被解释为通配符,比如:l*将被解释为“lstar”而不是“l{一切皆有可能}” 此外,如果我添加一个',它将转换为' 如何通过这些编程语言传递通配符?是shell(bash、csh)等处理通配符并将特定参数传递给进程。例如,您可以运行ls*.txt-shell展开*.txt并调用ls a.txt b.txt c.txt(取决于当前目录中存在的文件) 调用exec不会调用任何shell,因此没有“通配符处理” 进程可以自己处理通配符(if(arg.equals(“*”){…),但我认

这可以防止参数被解释为通配符,比如:l*将被解释为“lstar”而不是“l{一切皆有可能}”

此外,如果我添加一个',它将转换为'

如何通过这些编程语言传递通配符?

是shell(bash、csh)等处理通配符并将特定参数传递给进程。例如,您可以运行
ls*.txt
-shell展开
*.txt
并调用
ls a.txt b.txt c.txt
(取决于当前目录中存在的文件)

调用
exec
不会调用任何shell,因此没有“通配符处理”

进程可以自己处理通配符(
if(arg.equals(“*”){…
),但我认为这是非常罕见的


因此,要么调用进程必须进行匹配并将正确的参数传递给exec,要么您需要使用shell调用exec,比如
Runtime.getRuntime().exec(“bash-c ls*.txt”);

处理通配符的是shell—如果您不调用shell,就没有人来处理通配符。谢谢,伙计,我必须运行它“Runtime.getRuntime().exec(“bash-c cmd arg1 arg2”);您可以回答它,我会接受它。”