【发布时间】:2014-11-22 21:44:51
【问题描述】:
我正在使用 GTK 为我的运行 Linux 的 C 程序创建一个接口。
我正在使用这个函数来加载我的 XML 接口:
gtk_builder_add_from_file(builder, g_build_filename("myInterface.glade", NULL), &error);
只要我和我的编译文件在同一个目录中,它就可以工作。
但如果我在另一个目录中,假设是一个子目录,然后我执行它:../a.out,我的程序找不到该文件。
所以思路是先获取程序路径(“/home/.../program”),加上文件名得到绝对路径。
但我不知道如何获得程序路径。而且我不确定这是让它发挥作用的最佳主意。
有什么想法吗?谢谢!
【问题讨论】:
-
您在哪个操作系统上需要这个?
-
到目前为止的答案没有考虑在没有给出路径的情况下启动可执行文件但shell通过扫描
PATH环境变量找到的情况。 -
如果操作系统是 Linux,则相关:stackoverflow.com/q/606041/694576
-
libgen.h 中的 dirname() 允许我获取 argv[0] 的路径并将我的文件路径连接到它。这正是我所需要的。
-
我有一些代码 here 试图这样做。