【发布时间】:2010-10-26 15:44:55
【问题描述】:
我希望可执行文件能够发现自己的路径;我感觉答案是“你不能这样做”,但我希望得到证实!
我认为我不能使用getcwd(),因为我可能不会从同一个目录执行它。我认为我不能使用argv[0],因为那是基于用于执行它的字符串。还有其他选择吗?
基本原理
真正的问题是我想在文件系统的某个地方放置一个可执行文件,并在它旁边放置一个默认配置文件。我希望可执行文件能够在运行时读取其配置文件,但我不想将此位置硬编码到可执行文件中,也不希望用户必须设置环境变量。如果这种情况有更好的解决方案,我会全力以赴......
【问题讨论】:
-
"如果这种情况有更好的解决方案",是的,照别人的做法,把配置文件放到/etc目录下。
-
@Steve:是的,这个问题的答案正是我想要的。谢谢!
-
这是一个典型的答案,很高兴有帮助
-
@Anders:我不能这样做的原因是因为这将位于每个人都可以使用的 NFS 共享上。不能放到大家本地的
/etc目录下!