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

我想打开相对于二进制位置的一些文件(log4cxx配置,其他日志等)。 不幸的是,
getwd()
getcwd()
都给了我目录,我尝试在已知路径上运行二进制文件,而不是给我二进制文件所在的路径(以及数据所在的位置)。 如何让应用程序的路径与
chdir()
一起使用?除了
argv[0]
之外的任何方法,而不试图解析/ proc / $ PID /(这不够便携)?     
已邀请:
这正是autoconf所关注的事情,如果您想要编写软件的程序员以外的任何人使用它,那么支持这些标准目录几乎是强制性的。一旦设置正确,要调出您的主目录,您所要做的就是将不同的
--prefix=
值传递给
configure
。     
走PATH并找到与argv [0]同名的可执行文件? 但是,为用户提供配置数据位置的方法可能会更好。 env var或config文件或CL参数或其他东西。处理试图提供帮助但实际上只是愚蠢的程序是非常令人沮丧的。     

要回复问题请先登录注册