root/debug/crc32.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. main

///////////////////////////////////////////////////////////////////////////////
//
/// \file       crc32.c
/// \brief      Primitive CRC32 calculation tool
//
//  Author:     Lasse Collin
//
//  This file has been put into the public domain.
//  You can do whatever you want with this file.
//
///////////////////////////////////////////////////////////////////////////////

#include "sysdefs.h"
#include "lzma.h"
#include <stdio.h>


int
main(void)
{
        uint32_t crc = 0;

        do {
                uint8_t buf[BUFSIZ];
                const size_t size = fread(buf, 1, sizeof(buf), stdin);
                crc = lzma_crc32(buf, size, crc);
        } while (!ferror(stdin) && !feof(stdin));

        //printf("%08" PRIX32 "\n", crc);

        // I want it little endian so it's easy to work with hex editor.
        printf("%02" PRIX32 " ", crc & 0xFF);
        printf("%02" PRIX32 " ", (crc >> 8) & 0xFF);
        printf("%02" PRIX32 " ", (crc >> 16) & 0xFF);
        printf("%02" PRIX32 " ", crc >> 24);
        printf("\n");

        return 0;
}

/* [<][>][^][v][top][bottom][index][help] */