Looking at the documentation for fread() in C:
Declaration
Following is the declaration for fread() function.
size_t fread(void*ptr, size_t size, size_t nmemb, FILE *stream)
Parameters
ptr − This is the pointer to a block of memory with a minimum size of size*nmemb bytes.
size − This is the size in bytes of each element to be read.
nmemb − This is the number of elements, each one with a size of size bytes.
stream − This is the pointer to a FILE object that specifies an input stream.
Is there any way to specify the size to be less than a byte? Or a way to move the fptr only a certain number of bits forward?
A byte is the smallest unit of data that can be stored or accessed.
You'll need to read a byte, then look at the upper bits and lower bits separately. For example: