提升file_mapping异常

时间:2013-12-13 10:05:27

标签: c++ boost

代码因未知原因崩溃。我真的不知道为什么,我尝试在另一台计算机上运行它,甚至开始一个新项目,但没有。我也重新编译了提升。

try
{
    cout << "A " << file_name << endl;//fine
    file_mapping m_file(file_name, read_only);
    mapped_region region(m_file, read_only);
} catch (interprocess_exception e)
{
    cout << "B|" << file_name << "| ";//empty???
    cout << e.what() << endl;
}

文件名100%有效,const char*,代码输出:

A C:\file
B || The system cannot find the file path specified.

但问题是:这只发生有时,其他工作正常!

1 个答案:

答案 0 :(得分:0)

哦,等待file_name指向陈旧数据。

尝试将filename更改为std::string。并 确定 const char*在您初始化filename时仍然有效。

最有可能的是,const char*指向不再存在的(堆栈)位置。

如果在启用完全警告的情况下编译,您可能会发现这种情况发生的位置(当编译器报告“返回对本地的引用”时,例如。)