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 128int 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; }