C,Linux,getcwd / chdir():获取二进制路径

时间:2011-03-28 23:55:44

标签: c++ chdir getcwd

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

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

如何获取应用与chdir()一起使用的路径?除了argv[0] 之外的任何方法,而不试图解析/ proc / $ PID /(那不够便携)

2 个答案:

答案 0 :(得分:3)

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

但是,为用户提供配置数据位置的方法可能会更好。 env var或配置文件或CL参数或某事。处理试图提供帮助但实际上只是愚蠢的程序是非常令人沮丧的。

答案 1 :(得分:1)

这正是autoconf生活的那种东西,如果您想要编写软件的程序员以外的任何人使用它,那么支持这些标准目录几乎是强制性的。正确设置后,要调出主目录,您只需将--prefix=值传递给configure即可。