我有一个可以读取和写入文件的 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;
}