强制程序以非编程方式将可执行文件的目录用于I / O而不是活动目录

时间:2015-12-24 19:00:54

标签: c++ c windows unix io

如果我有一个可执行文件:project/bin/exec,它将数据缓存到其活动目录中的file.txtfile.txt将保存的位置取决于我运行程序的方式:< / p>

  • project/file.txt如果我使用project
  • bin/exec运行它
  • project/bin/file.txt如果我使用project/bin
  • ./exec运行它

我希望程序总是使用可执行文件的目录,而我想知道是否有一种强制它执行它的非编程方式。< /强>

我对UNIX / Windows感兴趣,这是否有意义?

以编程方式,我知道我可以使用booststd::experimental filesystem,或许args[0]参数来获取可执行文件的目录,并将该路径用于I / O.

是这样做的吗?

1 个答案:

答案 0 :(得分:3)

Unix (问题的一部分)上执行此操作的一种方法是使用在运行可执行文件之前使用chdir的脚本。

这样的事情:

#!/bin/ksh

loc=`dirname $0`
cd $loc
echo $PWD