在这里,我正在为文件实现CRC16,用于文件验证。
在这里,我在文件末尾添加了2个字节的CRC。当文件将在目标设备上接收时,我必须计算此文件的CRC,而不计算最后两个字节
这是我在文件末尾附加CRC后的数据。
test123
wU现在,当我再次计算目标设备上的CRC时,我想忽略最后两个字节。这里我有一个常用的函数,我在读模式下打开文件并计算CRC。我想这次使用相同的函数。我有一个解决方案,使另一个函数与前一个相同,然后转到filesize-2。但是我不想重复两次函数。我想删除最后两个字节。
那么有没有人对此有什么建议或解决方案呢?
发布于 2012-03-08 11:13:58
让你的函数接受一个参数来忽略最后n个字节。正常情况下传入0,这种情况下使用2。
发布于 2012-03-08 11:25:59
此外,您是否需要帮助截断文件中的两个字节?
目标上是什么类型的API。
在POSIX上,您可以查找文件,然后使用off_t pos = lseek(fd, 0, SEEK_END)查找到末尾,这将返回位置。如果为(pos == (off_t) -1),则调用失败。如果调用成功,您可以只使用ftruncate(fd, pos - 2) (提供该pos >= 2)。
https://stackoverflow.com/questions/9612396
复制相似问题