【发布时间】:2019-07-31 18:56:17
【问题描述】:
我有一个用C编写的程序,它的目录结构是这样的:
root/
program.sh
textures/
texture1.png
program.sh 以如下方式导入纹理:load_textures("./textures/texture1.png")(相对路径)。因此,该程序仅在我从root 目录执行program.sh 时才有效。
我想创建一个指向program.sh 的链接,这样,每当我执行该链接时,我就可以从根目录执行program.sh。也就是说,我想从根目录外执行program.sh。
现在,我希望有一个解决方案可以在不更改源代码的情况下执行此操作(如果有办法的话),否则,在当前情况下,您如何建议我在 C 中打开文件/纹理?
有一个类似的问题here,但没有答案。
【问题讨论】:
-
您是否只是想在从链接执行时更改程序的当前工作目录?
-
程序正在使用资产的相对路径。因此,如果我更改目录,它将起作用。但我想在执行之后回到我之前所在的目录。
-
是的。您甚至可以将提供给脚本的命令行参数传递到您的程序中。我的意思是,您可以从一个单独的 C 程序中做到这一点,但这不值得。
-
只是在谷歌上搜索了一下
pushd和popd,我找到了this。非常感谢,先生。 :D -
好的,我会发帖的。