c++ - 在 Linux 上从 shell 脚本执行时 C++ 程序中的文件路径问题
问题描述
我在 Linux 系统上遇到了一个问题,我似乎无法在网上找到任何具体的解决方案。
我有一个 C++ 应用程序,让我们调用它Program1
。Program1
打开一个文本文件以供阅读。文本文件位于其上一级(../test_file.txt
)的父目录中。所以在代码中,打开文件:
ifile.open("../test_file.txt");
如果您在同一目录中打开终端Program1
并运行可执行文件:
$ ./Program1 &
一切正常。test_file.txt
阅读没有问题。
现在让我们在不同的目录中引入一个 shell 脚本,我们称之为ShellScript1
. 该脚本Program1
与其他程序在不同目录中执行。shell 脚本文件的重要行如下所示:
../../test/Release/Program1 &
运行此 shell 脚本时会Program1
执行但test_file.txt
无法读取。现在据我所知,这是因为活动目录是 shell 脚本的目录。
我需要能够使用不主动更改可执行文件中使用的相对路径的 shell 脚本运行可执行文件,例如Program1
通过 shell 脚本运行时。
有没有解决的办法?还是我在代码中读取文件的方法需要改进?
请注意,我将每个进程作为后台进程运行,以确保我可以同时运行每个可执行文件。
解决方案
推荐阅读
- node.js - Nodejs保存JSON文件
- spring - 403 Forbidden while doing delete request. Spring Boot 休息 api
- angular - 如何在角度 service.ts 中传递修复变量?
- spring - 登录尝试期间的Spring安全异常
- sql - 选择字符串值并转换/转换为日期
- javascript - 如何模拟在函数外部实例化的常量?
- vue.js - 无需额外数组即可动态绑定 v-model
- c++ - 如何在子类的向量上应用多态函数
- jstree - 如何向 jsTree 上下文菜单添加选项
- bixby - 如何获取用户在 bixby 中询问的确切输入词