2

我想打开一些相对于二进制位置的文件(log4cxx 配置、其他日志等)。

不幸的是,两者getwd()都给getcwd()了我目录,我尝试从该目录以已知路径运行二进制文件,而不是给我二进制文件所在的路径(以及数据所在的位置)。

如何获取应用程序的使用路径chdir()?除了尝试解析 /proc/$PID/之外的任何方法argv[0] (这还不够便携)

4

2 回答 2

3

走 PATH 并找到与 argv[0] 同名的可执行文件?

但是,为用户提供一种配置数据位置的方法可能会更好。一个环境变量或配置文件或 CL 参数或其他东西。处理那些试图提供帮助但实际上很愚蠢的程序是非常令人沮丧的。

于 2011-03-29T00:01:58.133 回答
1

这正是autoconf的用途,如果您希望编写软件的程序员以外的任何人使用它,那么支持这些标准目录几乎是强制性的。正确设置后,要在主目录之外进行调试,您所要做的就是将不同的--prefix=值传递给configure.

于 2011-03-29T02:33:08.267 回答