从文件中删除最后两个字节或忽略文件的最后两个字节在C中

时间:2012-03-08 03:10:51

标签: c file

这里我正在为文件验证文件实现CRC 16。

这里我在文件末尾追加2个字节的CRC。当在目标设备上接收文件时,我必须在没有最后两个字节的情况下计算该文件的CRC

这是我在文件末尾附加CRC后的数据。

test123
wU

现在,当我再次计算目标设备上的CRC时,我想忽略最后两个字节。 这里我有一个常见的功能,我在读取模式下打开文件并计算CRC。我想在这个时候使用相同的功能。 我有一个解决方案使另一个功能与前一个相同,然后转到filesize-2。但是dnt想要复制两次功能。我想删除最后两个字节。

所以任何机构都有关于此的建议或解决方案吗?

2 个答案:

答案 0 :(得分:3)

另外,你需要帮助截断文件中的两个字节吗?

目标上有哪种API。

在POSIX上,您可以open该文件,然后off_t pos = lseek(fd, 0, SEEK_END)寻找结尾,然后返回该位置。如果(pos == (off_t) -1)则呼叫失败。如果通话成功,您可以ftruncate(fd, pos - 2)(提供pos >= 2)。

答案 1 :(得分:0)

让你的函数取一个参数来忽略最后n个字节。传入0表示正常使用2表示该情况。