Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

the code should be in C language. my-zip and my-unzip The next tools you will build come in a pair, because one ( ny-zip )

image text in transcribed

image text in transcribed

the code should be in C language.

my-zip and my-unzip The next tools you will build come in a pair, because one ( ny-zip ) is a file compression tool, and the other (my-unzip ) is a fle decompression tool The type of compression used here is a simple form of compression called run-iength encoding (RLE). RLE is quite simple: when you encounter n characters of the same type in a row, the compression tool (ny-zip ) will turn that into the number n and a single instance of the character Thus, if we had a file with the following contents: the tool would turn it (logically) into: 18a4b However, the exact format of the compressed file is quite important; here, you will write out a 4-byte integer in binary format followed by the single character in ASCII. Thus, a compressed file will consist of some number of 5-byte entries, each of which is comprised of a 4-byte integer (the run length) and the single character To write out an integer in binary format (not ASCI, you should use turite). Read the man page for more details. For ny- zip, all output should be written to standard output (the stdout file stream, which, as with stdin, is already open when the program starts running). Note that typical usage of the my-zip tool would thus use shell redirection in order to write the compressed output to a file. For example, to compress the file file.txt into a (hopefully smaler) file.z,you would type: lyougnachine] .y-zip file.txt tile.z The "greater than" sign is a UNIX shell redirection in this case, it ensures that the output from my-zip is written to the file file.z (instead of being printed to the screen). You'll learn more about how this works a little later in the course. The ny-unzip tool simply does the reverse of the my-zip tool, taking in a compressed file and writing (to standard output again) the uncompressed results. For example, to see the contents of file.txt, you would type: lyoumachinel ./my-unzip file.iz my-unzip should read in the compressed file (likely using fread)) and print out the uncompressed output to standard output using printf Details Correct invocation should pass one or more files via the command line to the program; if no files are specified, the program should exit with return code 1 and print "my-zip: file1 [file2.. (followed by a newline) or "my-unzip: file1 fle2 J(followed by a newline) for my-zip and my-unzipl respectively. The format of the compressed file must match the description above exactly (a 4-byte integer followed by a character for each run) Do note that if multiple files are passed to my-zip, they are compressed into a single compressed output, and when unzipped, will turn into a single uncompressed stream of text (thus, the information that multiple files were originally input into my-zip is lost). The same thing holds for my-unzip

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Temporal Databases Research And Practice Lncs 1399

Authors: Opher Etzion ,Sushil Jajodia ,Suryanarayana Sripada

1st Edition

3540645195, 978-3540645191

More Books

Students also viewed these Databases questions

Question

You have

Answered: 1 week ago