我在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脚本运行可执行文件,而该脚本不会在通过Shell脚本运行时主动更改可执行文件中使用的相对路径,例如Program1
。
有没有解决的办法?还是我在代码中读取文件的方法需要改进?
请注意,我将每个进程作为后台进程运行,以确保可以同时运行每个可执行文件。