从Linux上的Shell脚本执行时,C ++程序中的文件路径问题

时间:2018-12-03 01:05:18

标签: c++ linux terminal sh

我在Linux系统上遇到了一个问题,似乎无法在线找到任何具体的解决方案。

我有一个C ++应用程序,请称之为Program1Program1打开一个文本文件以供阅读。文本文件位于其上一级目录(../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

有没有解决的办法?还是我在代码中读取文件的方法需要改进?

请注意,我将每个进程作为后台进程运行,以确保可以同时运行每个可执行文件。

0 个答案:

没有答案