mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-01-03 08:38:18 +00:00
47 lines
842 B
C
47 lines
842 B
C
/* gcc -O3 -o crc32 crc32.c -lz */
|
|
|
|
#include <stdio.h>
|
|
#include <zlib.h>
|
|
#include <errno.h>
|
|
#include <string.h>
|
|
|
|
int main( int argc, const char* argv[] )
|
|
{
|
|
if ( argc != 2 )
|
|
{
|
|
fprintf( stderr, "Usage: crc32 <filename>\n" );
|
|
return 1;
|
|
}
|
|
|
|
FILE* file = fopen( argv[ 1 ], "rb" );
|
|
|
|
if ( file )
|
|
{
|
|
uLong crc = crc32( 0L, Z_NULL, 0 );
|
|
|
|
for ( ;; )
|
|
{
|
|
Bytef buffer[ 16384 ];
|
|
|
|
int numread = fread( (void*)buffer, 1, sizeof( buffer ), file );
|
|
|
|
if ( numread > 0 )
|
|
{
|
|
crc = crc32( crc, buffer, numread );
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
fclose( file );
|
|
|
|
printf( "%08x\n", crc );
|
|
return 0;
|
|
}
|
|
|
|
fprintf( stderr, "Error opening input file: %s\n", strerror( errno ) );
|
|
return 1;
|
|
}
|