0

我有一个可以读取和写入文件的 c++ 程序。当我从 bash shell 调用它时./modifyFile /path/to/file.abc.12.def,它可以工作。但是,如果我从 bash 脚本中执行相同的操作,如下所示:

 #!/bin/bash
 ./modifyFile /path/to/file.abc.12.def 

c++ 程序无法打开文件。我打印文件名,该文件名传递给程序并且输出是正确的。

事实上,如果我复制 c++ 程序打印的文件名并在 bash 脚本上手动执行它./modifyFile /path/to/file.abc.12.def,它就可以工作。所以也没有用户权限问题。

未找到文件的 c++ 代码如下所示

    fstream aFile(filename.c_str(), fstream::ate | fstream::in | fstream::out);
    if(!aFile)
    {
            cerr << "Unable to open file!" << endl; // this prints from bash script
            return EXIT_FAILURE;
    }
4

0 回答 0