我在C中编写了我的程序,其中包括调用bash脚本和另一个外部程序(所有这些程序都与我的C程序位于同一目录中)。我将执行文件的路径设置为严格,如:
char *path_for_the_script = "location/of/script.sh";
并编译我的program.c,没有任何特殊参数..
现在我想知道如何管理程序设置此路径,以便其他人可以从他的计算机上使用它而无需手动更改路径?
答案 0 :(得分:1)
从环境变量加载路径(如果未设置变量,还添加回退或失败路径),并通过包装脚本启动程序,用户可以调整该脚本。
实施例
yourprogram.c中的
char const * const path_for_the_script = gentenv("YOURPROGRAM_SCRIPT_PATH");
programlauncher.sh
#!/bin/sh
export YOURPROGRAM_SCRIPT_PATH="..."
exec yourprogram $@
答案 1 :(得分:0)
不是在代码中设置路径,而是在同一目录中创建一个文本文件,并从txt文件中获取路径信息。因此,任何人都可以使用所需的路径修改文本文件并执行程序,而无需修改任何代码。
create a file in same directory as source.txt
vi source.txt
location/of/script.sh
在程序中,使用文件打开操作并访问文件内容并分配给path_for_the_script char缓冲区。仅当所有用户共享同一台计算机时,此方法才有效。