以下代码正在工作,我试图了解如何。
int Process::processTextFile(const boost::filesystem::path& infile)
{
const char *file = infile.string().c_str();
uint16_t num_lines = 0;
.
.
.
FILE *fp;
fp = fopen(file, "r");
.
.
//Use fp for reading and stuff.
}
据我了解infile.string()
,创建一个临时文件指向内容。在语句结束 (;) 的那一刻,临时字符串应该超出范围,导致文件成为悬空指针。
我将使用字符串而不是,char*
但仍然需要了解我缺少什么。
编译器 - gcc 4.8.4
优化 - O3