I need to implement caching into my existing C code. It currently downloads blocks of bytes from internet (variable size blocks), and I need it to cache these blocks in a file, so if subsequent request is called for the same bytes block, it will first try to get it from a cached file on disk, and only if that is not in the cache yet, it downloads the data from network and then stores it in cache for future.
You should modify the C code to accept commandline arguments, provided by the user, which will specify file path/name where to save the cache on disk, and an index file path/name where to store index for the cache if needed. Furthermore a commandline parameter has to be added to allow the user to limit maximum cache size. If cache size reaches its maximum, oldest blocks in the cache will be overwritten by newest blocks.
The C code is based on httpfs2 opensource software, and it will be compiled in Linux using gcc and compilation must produce no warnings and no errors.