Stack Overflow Asked by nguyenvivian on October 9, 2020
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?
you cant, but of course you can write your own fuction.
int readSomeBitsButOnlyLessThan9(FILE *file, size_t bitnum, size_t nbits, unsigned char *result)
{
long byte = bitnum >> 3;
int res;
unsigned short val;
if(nbits > 8) return -1;
if(fseek(file, byte, SEEK_SET)) return -1;
if(((bitnum + nbits) >> 3) > byte)
{
if(fread(&val, 1, 2, file) != 2) return -1;
}
else
{
if(fread(&val, 1, 2, file) != 2) return -1;
}
val >>= 8 - (bitnum & 7);
*result = val;
return 0;
}
(It is 1am and I do guarantee that it is error free)
Answered by P__J__ on October 9, 2020
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:
unsigned char value = get_value();
unsigned char upper = (value & 0xf0) >> 4;
unsigned char lower = value & 0x0f;
Answered by dbush on October 9, 2020
2 Asked on November 20, 2021
3 Asked on November 20, 2021
0 Asked on November 20, 2021 by asad-saeeduddin
1 Asked on November 20, 2021 by saleel-almajd
9 Asked on November 20, 2021 by stewart_r
3 Asked on November 20, 2021 by bugaboo
15 Asked on November 20, 2021
1 Asked on November 20, 2021 by onur-klekci
1 Asked on November 20, 2021 by satishkumar-konishetti
1 Asked on November 20, 2021
0 Asked on November 20, 2021 by afnan-ahmad
1 Asked on November 20, 2021 by k-ter
clean architecture domain driven design hexagonal architecture
1 Asked on November 20, 2021
1 Asked on November 20, 2021 by natehawkboss
2 Asked on November 20, 2021 by rob-none
1 Asked on November 20, 2021 by hidden-layer
4 Asked on November 20, 2021 by michael-kostiuchenko
Get help from others!
Recent Questions
Recent Answers
© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP