#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { if(argc < 2) { printf("Usage: %s <input file>\n", argv[0]); exit(1); } char * infile = argv[1]; char outfile[FILENAME_MAX + 6]; snprintf(outfile, strlen(infile) + 6 + 1, "%s.plain", infile); printf("Input file: %s\n", infile); printf("Output file: %s\n", outfile); FILE * input_fd = fopen(infile, "rb"); if(!input_fd) { perror("Unable to open input file"); exit(1); } FILE * output_fd = fopen(outfile, "wb"); if(!output_fd) { perror("Unable to open output file"); exit(1); } int len; int ret; ret = fread(&len, sizeof(int), 1, input_fd); while(ret > 0) { printf("Len: %d\n", len); char * buffer = malloc(len);; ret = fread(buffer, sizeof(char), len, input_fd); ret = fwrite(buffer, sizeof(char), len, output_fd); free(buffer); ret = fread(&len, sizeof(int), 1, input_fd); } fclose(input_fd); fclose(output_fd); }