【发布时间】:2012-02-01 17:55:33
【问题描述】:
我有一个文件,我在其中读取数据。假设文件有字符串“abcdefghij”。现在,我将从不同进程中随机读取文件,并将该字节和偏移量存储在某处。例如,我将“c”保存为我的角色,偏移量为“3”,因为那是它的位置。作为参考,我一直在使用 lseek 来获取文件中的偏移量。
接下来,我想将其写入一个新文件。是否可以写入空文件中的特定偏移量?所以,我想将'c'写入文件中的'3'位置,然后另一个进程会将'j'写入文件中的位置10。
【问题讨论】:
-
在空文件中谈论偏移是没有意义的。您必须添加一些填充字符。
-
这是绝对必要的吗?因为如果我的源文件包含 100 甚至 1000 个字符。写到第 1000 个位置可能需要一段时间,并且需要我填满直到那个位置的每个空间。如果可能的话,我只是想避免这种情况。
-
@canistr:你无法避免。到那时为止的空间绝对必须被填满。必须由您明确填写,否则系统会为您隐式填写。没有办法解决它。这两种场景之间的性能不会有明显差异。
-
我想收回我的回答。请取消接受。