C ++ найти файл на LD_LIBRARY_PATH

В C / C ++ Существует ли способ проверить, находится ли конкретный файл по определенному пути? Я представляю синтаксис, который может выглядеть как stat (), но с дополнительными параметрами для имени файла и пути.

pathstat( struct stat stResult, const char* filename, const char* path );

1

Решение

с помощью access() функция с F_OK Флаг проверит, существует ли ваш файл. но перед этим вы должны подготовить путь к файлу (из filename а также path переменные) перед передачей пути к файлу в качестве входного аргумента в функции access(),

В этом ответе я предполагаю, что вы используете Linux в качестве платформы

void pathstat( struct stat stResult, const char* filename, const char* path )
char *file;
int path_len;

if (!filename) {
// set error in the stResult
return;
}

path_len = path ? strlen(path) : 0;

file = malloc((strlen(filename) + path_len + 2) * sizeof(char));
// PREPARE THE FILE PATH
if (path && path[0] && path[path_len-1]=='/')
sprintf(file,"%s%s",path,filename);
else if (path && path[0])
sprintf(file,"%s/%s",path,filename);
else
file = strcpy(file,filename);

//NOW CHECK IF THE FILE PATH EXIST WITH ACCESS
if (access(file, F_OK) != -1) {
//file exist
} else {
// file does not exxit
}
free(file);
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]