所以我正在运行一个用CMake(不是我)构建的C ++应用程序。它适用于使用它进行测试的其他人,但没有找到任何人在centos7上进行测试。
这段代码似乎出现了问题:
struct stat fileStat;
if ( stat( pszFilePath, &fileStat) == -1 )
{
DEBUG_ERR(( "Can't open input dir [%s]\n", pszFilePath ));
return( false );
}
这是ReadFileInfo调用的第一部分:
time_t dateChange;
DWORD dwSize;
if ( ! CFileList::ReadFileInfo( GetFilePath(), dateChange, dwSize ))
{
DEBUG_ERR(( "Can't get stats info for file '%s'\n", static_cast<LPCTSTR>(GetFilePath()) ));
return false;
}
现在,pszFilePath有很多值,一些例子是:
'scripts/sphere_template_vend.scp'
'scripts/sphere_serv_triggers.scp'
应用程序由root拥有,它所有的整个文件夹都归root所有。 scripts文件夹就在那里,并且具有读/写权限,所有文件(所有文件也由root拥有)
运行应用程序会触发上述代码中的两个错误,它们之前没有任何东西可以影响任何内容。
我不是C ++开发人员,没有使用调试编译的工具来检查当前路径等等,但我认为没有理由抛出这些错误。文件存在,文件可访问,似乎没有其他人有这个问题。
我在服务器上有cPanel,但它不应该导致任何问题,因为我使用root用户并且不在/ home /目录中
任何人都知道这可能是因为?我尝试使用'/ sphere /'前置路径,但它仍然有相同的问题,似乎应用程序无法访问文件(应用程序奇怪地报告它说无法读取的文件中的行错误,但他们做不匹配,所以假设它不正确)。
Github在此处针对该项目报告的问题:https://github.com/Sphereserver/Source/issues/64
但似乎没有人知道最新情况