特定のディレクトリ内のすべてのファイル (写真) を読み取り、それを 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);
}