如何将目录中所有具有完整路径的文件传递到execv中的参数数组
How can i pass all files with full path in a directory to the argument array in execv?
我正在尝试读取给定目录中的所有文件(图片),并将其传递给execv。我想启动帧缓冲区图像查看器(fbi)。
目前,当我从图片所在的目录启动它时,它就可以工作了。我如何操作矢量,使其不仅包含文件名,还包含路径+文件名?
int startSlideshow (char* pathtoFBI) {
pid_t fbiPid;
fbiPid = fork();
if (fbiPid == 0) {
/* this is the child process */
DIR *pictureDirectory;
struct dirent *dir;
int i = 0;
vector<char*> argVector;
char pDirectory[] = "/home/pi/bilder/";
argVector.push_back(pathtoFBI); /* first Argument is Program name */
pictureDirectory = opendir(pDirectory);
if (pictureDirectory){
while ((dir = readdir(pictureDirectory)) != NULL) {
i++;
if (i > 2) { /* first element is "." second is ".." */
argVector.push_back(dir->d_name);
}
}
//i -= 2;
} else ERREXIT("reading picture directory");
closedir(pictureDirectory);
argVector.push_back(NULL);
char** fbiArgv = &argVector[0];
execvp(pathtoFBI, fbiArgv); /* pid is taken over by fbi */
_exit(EXIT_FAILURE);
}
给定您的代码,您只需要为每个文件名预先添加pDirectory:
--- c1.cc 2013-02-04 02:35:47.000000000 +0400
+++ c2.cc 2013-02-04 02:39:03.000000000 +0400
@@ -8,7 +8,7 @@
DIR *pictureDirectory;
struct dirent *dir;
int i = 0;
- vector<char*> argVector;
+ vector<char*> argVector; vector<string> fpVector;
char pDirectory[] = "/home/pi/bilder/";
argVector.push_back(pathtoFBI); /* first Argument is Program name */
pictureDirectory = opendir(pDirectory);
@@ -16,7 +16,8 @@
while ((dir = readdir(pictureDirectory)) != NULL) {
i++;
if (i > 2) { /* first element is "." second is ".." */
- argVector.push_back(dir->d_name);
+ fpVector.push_back(string(pDirectory) + dir->d_name);
+ argVector.push_back((char*) fpVector.back().c_str());
}
}
//i -= 2;
更普遍地说,Boost文件系统是绝对的和规范的。
相关文章:
- 如何将内容数组写入文本文件?
- C++将文本文件中的数据读取到结构数组中
- 将值从二维数组输出到文本文件
- C++数据文件、数组和计算赋值
- 如何拆分文件中.txt字母并使用c ++使用数组进行扑克?
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 如何从txt文件中读取多个不同长度的数组?
- 保存/加载大量短数组到二进制文件
- 从二进制文件中读取整数数组
- 如何在 C++ 中将文件中的逗号分隔数字读取到数组中?
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- C++编程从外部文本文件定义数组大小
- 使用矢量将文本文件中的输入存储到 2D 数组中
- 如何将文本文件的特定行读取到 int 类型的数组中C++?
- 使用 stbi_write_png,如何将 0 和 1 的矩形字节数组转换为单色 png 文件?
- 将系数存储在头文件的数组中("does not name a type"错误)
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 从文件读取,并写入函数C++中的数组
- 如何使用QJSONARRAY在QT5(C )中解析JSON文件(数组)
- 从文件/数组C++聚合数据