我有一个可以读写文件的c ++程序。当我从诸如./modifyFile /path/to/file.abc.12.def
的bash shell调用它时,它可以正常工作。但是,如果我从bash脚本执行相同操作,如下面的show:
#!/bin/bash
./modifyFile /path/to/file.abc.12.def
c ++程序无法打开文件。我打印文件名,传递给程序并输出正确。
事实上,如果我复制由c ++程序打印的文件名并在b ./modifyFile /path/to/file.abc.12.def
等bash脚本上手动执行,则可以正常工作。因此,也没有用户权限问题。
找不到文件的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;
}