在C程序中设置路径以执行外部程序

时间:2014-12-15 08:54:24

标签: c

我在C中编写了我的程序,其中包括调用bash脚本和另一个外部程序(所有这些程序都与我的C程序位于同一目录中)。我将执行文件的路径设置为严格,如:

    char *path_for_the_script = "location/of/script.sh";

并编译我的program.c,没有任何特殊参数..

现在我想知道如何管理程序设置此路径,以便其他人可以从他的计算机上使用它而无需手动更改路径?

2 个答案:

答案 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缓冲区。仅当所有用户共享同一台计算机时,此方法才有效。