强制程序使用可执行文件的目录进行 I/O,而不是以非编程方式使用活动目录
Force program to use executable's directory for I/O instead of active directory non-programmatically
如果我有一个可执行文件:project/bin/exec
,它将数据缓存到其活动目录中的file.txt
中,则保存file.txt
的位置取决于我如何运行程序:
project/file.txt
如果我用bin/exec
从project
运行它project/bin/file.txt
如果我用./exec
从project/bin
运行它
我希望程序总是使用可执行文件的目录,我想知道是否有非程序化的方法迫使它这样做。
我对UNIX/Windows感兴趣,这有意义吗
从程序上讲,我知道我可以通过使用boost
或std::experimental
filesystem
,也许是args[0]
参数来获取可执行文件的目录,并使用该路径进行I/O。
这样做吗
在Unix上执行此操作的一种方法(问题的一部分)是在运行可执行文件之前使用chdir脚本。
类似这样的东西:
#!/bin/ksh
loc=`dirname $0`
cd $loc
echo $PWD
相关文章:
- 如何以编程方式使窗口全屏显示?
- 以编程方式防止重命名或删除文件,但仍使其可写
- 如何使 printf 以与 NSLog 相同的方式打印字符缓冲区?
- 我可以以某种方式使我的矢量/数组动态更改装置数量吗?
- 如何以编程方式查找 Windows 上的活动安全提供程序
- 为什么这些toupper在这样使用时工作方式不同
- 哪种机制使Oracle会话在服务器上保持活动状态
- 如何使进程B仅在进程A处于活动状态时运行
- 使 c++ 程序以交互方式将输入输出传递给 windows 命令 prommpt
- 对对象的数据成员的shared_ptr是否使数据成员在对象的生存期之后保持活动状态
- 告诉 PDCurses 以编程方式使窗口与物理屏幕大小相同的方法
- 如何使用 calloc/malloc 等函数对动态创建的存储进行正确排序,使其以 FIFO 方式运行
- 以编程方式在窗口中获取活动连接
- 工作线程使主线程MFC的对话框处于非活动状态
- 强制程序使用可执行文件的目录进行 I/O,而不是以非编程方式使用活动目录
- 如何使系统进入睡眠状态并再次自动(以编程方式)从睡眠状态恢复,而无需任何手动"鼠标单击或键盘点击"
- 使类信息在运行时可访问的可扩展方式
- 如何使C++类以 const 方式访问另一个类的所有私有成员(仅读取而不写入)
- 我如何使连续内存以一种安全的方式表现多态
- 如何以编程方式使系统崩溃