Как я могу прочитать последние 2 байта из файла и удалить их после прочтения - PullRequest
1 голос
/ 07 марта 2012

Здесь я разработал программу для 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 голосов
/ 07 марта 2012

Если я правильно понимаю, вы хотите rewind файл два байта назад.

fseek(readFile, -2, SEEK_CUR);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...