rendered paste body#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define min(a,b) ((a) < (b) ? (a) : (b))
#define max(a,b) ((a) > (b) ? (a) : (b))
#define BLOCK_SIZE 1024
#define BIT_COUNTER_SIZE 128
int main(int argc, char *argv[])
{
int i,j;
unsigned char buffer[32];
unsigned int num_tests,num_bytes,num_bits,remaining_bytes;
unsigned int binary_blocks,remaining_blocks,num_bytes_left;
unsigned int num_blocks;
FILE *infile;
if ( argc != 3) {
printf("Usage: %s <input file> <size>\n",argv[0]);
return 1;
}
infile = fopen(argv[1],"r");
if( infile == 0 ){
printf("Error opening file %s\n", argv[1]);
return 1;
}
num_bytes = atoi(argv[2]);
num_bits = 8*num_bytes;
num_bytes_left = num_bytes;
binary_blocks = num_bytes / strlen(buffer);
remaining_blocks = num_bytes % strlen(buffer);
if(remaining_blocks != 0){
binary_blocks++;
}
num_blocks = num_bits / (BLOCK_SIZE-BIT_COUNTER_SIZE) + 1;
//remaining_bytes = num_bytes % strlen(buffer);
printf("binary_blocks = %d\n",binary_blocks);
printf("remaining_blocks = %d\n",remaining_blocks);
printf("num_blocks = %d\n",num_blocks);
//printf("remaining_bytes = %d\n",remaining_bytes);
for(i = 0; i < binary_blocks; i++){
fread(buffer,1,min(num_bytes_left,strlen(buffer)),infile);
for(j = 0; j < min(num_bytes_left,strlen(buffer)); j++){
printf("%X",buffer[j]);
}
num_bytes_left -= max(remaining_blocks,strlen(buffer));
printf("\n");
if( i == binary_blocks - 1 ) {
printf("80\n");
}
}
//fgets(message, num_bytes,infile);
//outputPaddedMessage(message,num_bytes);
fclose(infile);
return 0;
}