我想使用openMP来读取一个包含大量磁盘行的大文件。一种方法似乎使用seekg()
函数。但令人头痛的部分是seekg()
仅支持将文件索引移动到特定字节。
如果每行的大小完全相同,这可以正常工作。但是如果每条线的大小完全不同,我不知道怎么做。 你能给我一些提示吗?
答案 0 :(得分:1)
一种可能性:
基本上,您最初基于字节偏移选择边界,但是然后将它们向前移动以与行结尾一致。每个任务在其块的开头跳过一些字符,而这些字符由另一个读取前一个块末尾的任务处理。
(我相信这是Hadoop默认情况下拆分基于文本的输入文件的方式,BTW。)