【发布时间】:2011-03-28 23:55:43
【问题描述】:
我想打开一些与二进制文件位置相关的文件(log4cxx 配置、其他日志等)。
不幸的是,getwd() 和 getcwd() 都给了我目录,我尝试从该目录以已知路径运行二进制文件,而不是给我二进制文件所在的路径(以及数据所在的位置)。
如何获取应用程序的路径以与chdir() 一起使用?除了argv[0] 之外的任何方法并且不尝试解析 /proc/$PID/(这还不够便携)?
【问题讨论】:
-
Windows 知道执行二进制文件的目录,但 Unix 不知道。
-
# ls -la /proc/1027/|grep exe lrwxrwxrwx 1 root root 0 Mar 29 03:13 exe -> /sbin/udevd
-
Linux 可能会跟踪它,但这不是标准的 Unix 功能。