Я пытаюсь открыть файл в большом коде.Открытие файла в C++, относительного или абсолютного?
Мне сказали, что при работе с файлами лучше использовать абсолютный путь, а не относительный путь. Однако этот код должен использоваться разными людьми, которые могут размещать источники в разных местах (/ home/username или/home/username/desktop /, например), поэтому я думаю, что было бы лучше использовать относительный путь к доступ к моему файлу конфигурации, потому что я знаю, где он относится к моему файлу cpp.
Вот короткая сумма складывается из местоположения файлов, имеющих отношение к моему вопросу:
файл Я хочу, чтобы прочитать это /home/me/myproject/config/myfile.txt
файл я читаю его от является /home/me/myproject/src/myfile.cpp
файл, который содержит «главный» также /home/me/myproject/src/myfile.cpp (это один файл огромен).
Я запускаю исполняемый файл из затмения. Я думаю, что eclipse устанавливает рабочий каталог в каталог, где «main» (/ home/me/myproject/src /).
Я озадачен тем фактом, что когда я собираюсь вызвать файл.open(), рабочий каталог (getcwd()) теперь есть/home/me/myproject /. По-видимому, рабочий каталог был изменен кодом между main() и моим вызовом file.open().
Мой вопрос: кажется, очень склонна полагаться на рабочий каталог, если его можно изменить другой частью программы. С другой стороны, как еще я должен знать, где мой путь конфигурации, учитывая, что я не знаю, где другие разработчики обычно помещают свои источники?
Сообщите вашему приложению, где файл конфигурации находится в командной строке. – Nick
Вам это нужно для работы на любой платформе или только в UNIX-подобных? – leftaroundabout