我正在尝试在大代码中打开文件。
有人告诉我,在处理文件时,使用绝对路径而不是相对路径可能是更好的做法。但是,此代码将由不同的人使用,他们可能会将源代码放在不同的位置(例如 /home/username 或 /home/username/desktop/),因此我认为使用相对路径可能会更好访问我的配置文件,因为我知道它与我的 cpp 文件的关系。
以下是与我的问题相关的文件位置的简短总结:
我要阅读的文件是 /home/me/myproject/config/myfile.txt
我从中读取的文件是 /home/me/myproject/src/myfile.cpp
包含'main'的文件也是/home/me/myproject/src/myfile.cpp(这个文件很大)。
我正在从 Eclipse 启动可执行文件。我认为eclipse将工作目录设置为'main'所在的目录(/home/me/myproject/src/)。
当我要调用 file.open() 时,工作目录 (getcwd()) 现在是 /home/me/myproject/,这让我感到困惑。显然,工作目录已被 main() 和我对 file.open() 调用之间的代码修改。
我的问题是:如果可以由程序的另一部分更改,依赖工作目录似乎很容易出错。另一方面,鉴于我不知道其他开发人员通常将他们的资源放在哪里,我应该怎么知道我的配置路径在哪里?