При переходе от моего текущего пути и поиска файла у меня возникают проблемы с поиском файла.Относительный путь/запросы абсолютного пути не работают из текущего каталога
Я подозреваю, что path
является вина за что из-за chdir
, в следующем коде:
Соответствующие папки являются:
- 12,13,14, 12 является каталог отец
- 13 внутри 12, 14 внутри 13
- david1.txt внутри 14
- get_current_dir_name() функция Linux, не мое
Я запустить исполняемый файл из Desktop
, как это (здесь printf-s
за попытку обнаружения проблемы):
// doesn't work
[email protected]:~/Desktop$ ./exer4 12 david1.txt
Current path is :12
Current path is :/home/a/Desktop/12/13
Current path is :/home/a/Desktop/12/13/14
//////////////////////////////////////////////////
// doesn't work
[email protected]:~/Desktop$ ./exer4 12/13 david1.txt
Current path is :12/13
Current path is :/home/a/Desktop/12/13/14
////////////////////////////////////////////////
// doesn't work
[email protected]:~/Desktop$ ./exer4 12/13/14 david1.txt
Current path is :12/13/14
Если удалить эти строки:
chdir(path); // the problem is probably here
strcpy(path, get_current_dir_name()); // and here
Тогда каждый запрос, который включает в себя только одно имя библиотеки - работы, например:
// works :
[email protected]:~/Desktop$ ./exer4 12 david1.txt
Current path is :12
Current path is :12/13
File found!
12/13/14/david1.txt-rw-rw-r-- 1 1000 1000 0 2012-06-17 08:10
Current path is :12/13/14
////////////////////////////////////////////////////////////
// works
[email protected]:~/Desktop$ ./exer4 12/13 david1.txt
Current path is :12/13
File found!
12/13/14/david1.txt-rw-rw-r-- 1 1000 1000 0 2012-06-17 08:10
Current path is :12/13/14
////////////////////////////////////////////////////////////
// Doesn't work
[email protected]:~/Desktop$ ./exer4 12/13/14 david1.txt
Current path is :12/13/14
Любая идея, что я делаю неправильно здесь? Я пытался изменить бесчисленное количество раз, но ничего не исправил. Спасибо
Если вы считаете, что есть проблема, почему вы не проверили код возврата. – pizza
Показать остальную часть кода, в противном случае это сложно сказать. – rumpel
Как вы проверяете, существует ли файл в каталоге?Покажите нам некоторый код, чтобы найти ошибку – MYMNeo