Update 'sk1/compressor.c'

This commit is contained in:
Anzhelika Nikolaieva 2024-01-30 19:36:43 +00:00
parent 4725753562
commit 661a538b39

View File

@ -172,7 +172,13 @@ int RLEcompress(struct Input input, struct Output* output) {
return output->length;
}
void compress(FILE* infile, FILE* outfile) {
int compress(const char* input_file_name, const char* output_file_name) {
FILE *infile = fopen(input_file_name, "rb");
if (infile == NULL) {
perror("Error opening input file");
return -1;
}
fseek(infile, 0, SEEK_END);
int insize = ftell(infile) + 1;
rewind(infile);
@ -185,6 +191,15 @@ void compress(FILE* infile, FILE* outfile) {
assert(!ferror(infile));
}
fclose(infile);
FILE *outfile = fopen(output_file_name, "wb");
if (outfile == NULL) {
perror("Error opening output file");
free(buffer);
return -1;
}
struct Input input = {.buffer = buffer, .size = insize};
struct Output tempOutput;
@ -202,4 +217,7 @@ void compress(FILE* infile, FILE* outfile) {
free(buffer);
free(tempOutput.result);
free(finalOutput.result);
}
fclose(outfile);
return 0;