gpt4 book ai didi

c - 写入该文件时来自单个文件的多个缓冲输入流?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:04 26 4
gpt4 key购买 nike

我正在处理一个排序问题,涉及对大于主内存的文件进行排序。第一阶段生成一个中间文件,其大小与原始输入文件相同,但包含一些本地排序的子部分。

第二阶段将这些子部分合并回一个排序列表。

我不想创建第三个文件来包含单个排序列表,而是想覆盖我正在读取的中间文件,因为我正在读取它

此外,我想为每个输入流维护单独的读取缓冲区(每个输入流都从某个偏移量读取到中间文件)。

我知道我可以使用 fopen() 和 fseek() 来创建多个缓冲的只读输入流。但是,fopen() 的约定规定,如果文件已存在,以“w”模式在文件上调用它会将文件的大小设置为零。我需要它不改变文件的大小,因为我仍在多个地方读取它。

是否有使用 fopen() 和 fseek() 的直接方法来完成此操作?还是我需要使用 open() 并管理我自己的读/写缓冲?

最佳答案

您可以直接以r+ 模式打开文件,这意味着它以读写方式打开,并且不会截断文件。

关于c - 写入该文件时来自单个文件的多个缓冲输入流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18710661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com