【发布时间】:2017-05-14 21:16:11
【问题描述】:
我的努力是在我的程序中使用一段代码来查找和复制系统中的某些文件。
我写的代码是:
void scan(int i)
{
pid_t parent = getpid();
pid_t pid = fork();
if (pid == -1)
{
cout << "failed to fork" << endl;
return;
}
else
{
if(pid > 0)
{
int status;
waitpid(pid, &status, 0);
}
else
{
if(i == 0)
{
execl("/usr/bin/find","find", "/", "-name", "'*.mp3'","-exec","cp","{}","/home/pi/Music","\\;",(char *)0);
_exit(EXIT_FAILURE);
}
}
}
return; }
不过,系统会返回这个:
find: missing argument to `-exec'
我该如何更正我的 execl 命令来执行这个 shell 命令:
find / -name '*.mp3' -exec cp {} /home/pi/Music \;
【问题讨论】:
-
cout << "failed to fork" << endl字符串文字不是 C 中<<的有效操作数。 -
1) 这不是 C 代码 2) 您的问题与 C 或 C++ 无关。 3) 与编程无关。
-
@Olaf - 如果我只使用上面写的 find 命令,它工作正常。唯一的问题是将其转换为 execl 格式。所以我个人会说这与编程有关。
-
RTF(ine)M 怎么样?
-
@Olaf 不要太接近(粗鲁),我一直很糟糕,你知道 ;-)
标签: c++