如何从文件中读取最后2个字节并在读取后删除它们

时间:2012-03-07 10:52:27

标签: c file

我在这里开发了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。那么我怎样才能读取最后两个字节并在读取后删除它们。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望将文件rewind改回两个字节。

fseek(readFile, -2, SEEK_CUR);