我正在实现一种将文件拆分为共享的算法,并且我有共享的数量。如果文件大小有余数(在与共享数的模数之后),我将用零填充它。现在,我正在尝试用字符串来做到这一点,当我需要重新组合它们时,我会得到额外的填充。文件也一样吗?或者填充零不会改变文件内容?
如果它确实改变了,有没有办法知道哪些零是填充零?
谢谢!
我正在实现一种将文件拆分为共享的算法,并且我有共享的数量。如果文件大小有余数(在与共享数的模数之后),我将用零填充它。现在,我正在尝试用字符串来做到这一点,当我需要重新组合它们时,我会得到额外的填充。文件也一样吗?或者填充零不会改变文件内容?
如果它确实改变了,有没有办法知道哪些零是填充零?
谢谢!
是的,向文件中添加任何内容都会改变其内容。在某些情况下,这可能无关紧要,但对于通用解决方案,您永远不应该依赖它。
在您的特定情况下,填充文件是一个坏主意。
如果您有每个文件部分必须适合的固定块大小,则可以用指示已添加多少字节的字节填充文件部分。例如,如果您添加了 7 个字节作为填充,则每个填充字节都应为 0x07。当您稍后重新组合这些部分时,您的程序首先必须剥离填充。在给定的示例中,它将读取该部分的最后一个字节,即 0x07,并得出结论,必须从文件末尾删除七个字节。
这种方法有两个问题:
如果您只是为了好玩而这样做,您可以查看split
您可以在 BSD 或 GNU/Linux 上找到的程序的源代码。提示:不需要填充。