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