1

我有一个带有字符串标识符的 ascii 数字文本文件(> 50k 行),可以将其视为数据向量的集合。根据用户输入,应用程序在运行时只需要这些数据向量之一。

据我所知,我有 3 个选项可以从这个文本文件中获取信息:

  1. 将其保存为文本文件,在运行时提取所需的向量。我认为缺点是您不能在代码中拥有相对路径,因此用户必须指向文件的正确位置(?)。或者,获取配置脚本以将绝对路径作为宏注入。
  2. 使用xxd将其转换为静态无符号字符(如此所述),然后包含生成的文件。缺点是一个 5MB 的文件变成了一个 25MB 的包含文件。我认为在运行期间将这 25MB 加载到内存中是否正确?
  3. 将其转换为对象并使用objcopy进行链接,如此所述。这似乎使文件大小保持不变——还有其他权衡吗?

是否有这样做的标准/推荐方法?如果有区别,我可以使用 C 或 C++。

谢谢。

(使用 gcc 在 linux 上运行)

4

3 回答 3

3

我会选择数字 1 并将文件路径作为参数传递给程序。这样做没有错,而且简单直接。

于 2012-08-10T11:47:21.923 回答
0

你应该看看这里的答案:

运行程序目录

投票最多的答案为您提供了如何处理数据文件的粘合剂。但是,我建议将其保存在/usr/share下,而不是主文件夹,如链接中所述。

于 2012-08-10T11:57:05.063 回答
0

我更喜欢使用 zlib (两种方式都是可能的:边文件或包含压缩数据)。

于 2012-08-10T12:11:41.087 回答