我在这里开发了CRC 16
程序,用于文件验证
这里我计算了文件的CRC 16,并在文件末尾写下CRC
值。 crc值数据类型为unsigned short
,因此需要2个字节。
代码就在这里
void appendCRCtoFile(const char* filePath, unsigned short result) {
FILE *readFile;
//open a file for Reading
readFile = fopen(filePath, "ab");
fseek(readFile, SEEK_END, SEEK_SET);
const unsigned char check_bytes[2] = { result >> 8, result & 255 };
const size_t wrote = fwrite(check_bytes, 1, sizeof(check_bytes), readFile);
if (wrote == 2) {
printf("succesfull wrote 2 bytes\n");
} else {
printf("Failed to wrote 2 bytes\n");
}
fclose(readFile);
}
现在我必须从文件中读取这最后两个字节,并希望在读取后删除它们并再次想要计算CRC。那么我怎样才能读取最后两个字节并在读取后删除它们。
答案 0 :(得分:0)
如果我理解正确,您希望将文件rewind
改回两个字节。
fseek(readFile, -2, SEEK_CUR);