【发布时间】:2016-05-16 03:26:26
【问题描述】:
我正在学习在 Unix 中使用 C 进行编码。到目前为止,我已经编写了代码来查找要替换的行的第一个字节的索引。问题是有时,替换行的字节数可能大于行上已经存在的字节数。在这种情况下,代码开始覆盖下一行。我想出了两个标准解决方案:
a) 与其尝试就地编辑文件,不如将整个文件复制到内存中,必要时通过移动所有字节进行编辑,然后将其重新写入文件。
b) 只将我想要的文件末尾的行复制到内存并编辑。
这两个建议都不能很好地扩展。而且我不想对行大小施加任何限制(比如每行必须是 50 字节或其他内容)。有什么有效的方法来更换线路吗?任何帮助将不胜感激。
【问题讨论】:
-
如果替换更短,问题也一样,因为无法删除文件中间的字符。
-
@rici 我想我可以用空格替换剩余的字符...
标签: c file unix text text-processing