【发布时间】:2017-12-07 20:12:47
【问题描述】:
虽然路径 "/home/abhijit/Documents/LINUX/editor/" 下有多个文件,但我没有在 "temp" 文件夹中获得所需的输出(应该从编辑器文件夹中复制所有文件),而是输出即将到来错误为:“cp: cannot stat '/home/abhijit/Documents/LINUX/editor/*': No such file or directory”。
#include <stdio.h>
#include <unistd.h>
int main( void )
{
char* argv1[10] = { "cp", "-rf", "/home/abhijit/Documents/LINUX/editor/*", "/home/abhijit/Documents/LINUX/temp", 0 };
execvp( argv1[0], argv1 );
}
但如果我说如下,它工作正常。
char* argv1[MAX_ARGS] = { "cp", "-rf", "/home/abhijit/Documents/LINUX/editor/", "/home/abhijit/Documents/LINUX/temp", 0 };
【问题讨论】:
-
如果你需要 shell-globbing,你可以使用
system()代替 -
@BhargavRao - 我试图投票取消删除 Abhijit 的回答,但由于您的身份,我不能。请原谅我对您的决定提出质疑,但我认为 Abhijit 的回答应该成立。它提供了完整的代码,并且归功于 SomeProgrammerDude 的回答。我认为它比 SomeProgrammerDude 的答案更好,因为 SPD 的答案缺少代码。
-
我坚信 stack-overflow 会尽可能提供完整的信息。 BhargavRao - 我完全同意你的看法。我提供的代码是“execvp() 和 glob() 的简单用法”来解决问题,并且答案的完整归功于 SomeProgrammerDude 的输入。根据 SomeProgrammerDude 的观点 fork 和 exec 应该被使用,我并不否认。顺便说一句,我已经发表了评论。根据我的意见,我提供的代码“不应该被删除”,因为它传达了实现输出的基本功能。如果我错了,请纠正我。