我编写了一个命令行实用程序,用于从 DXF 文件中提取文本。我的实用程序被命名为drawingtotext。假设这样的目录结构(Linux OS):
/home/dave/dxfs/
在 dxfs 文件夹中有一堆 DXF 文件。从那个位置,假设存在一个名为“P1-1522-YI-WD-0403r1.dxf”的文件,像这样运行drawingtotext会失败:
drawingtotext P1-1522-YI-WD-0403r1.dxf
有错误:Segmentation fault (core dumped)
runningdrawingtotext ~/dxfs/P1-1522-YI-WD-0403r1.dxf
给了我我期望的东西,最后加上这个:
*** Error in 'drawingtotext': free(): invalid next size (fast): 0x0000000002031170 ***
带有回溯和巨大的内存映射。
现在,将该文件向上移动到一个目录(/home/dave/ 而不是 /home/dave/dxfs/)会导致我正在寻找的结果没有错误。将文件重命名为“mydxf.dxf”之类的其他名称并将其保存在 /home/dave/dxfs/ 中也可以解决此问题。
我的问题是文件的位置如何以及为什么会改变我的程序的行为以及如何修复它?
代码在这里:http ://www.github.com/davidworkman9/drawingtotext/
主文件名为“AutoCADConverter.cpp”