I’m working with a function that uses bitwise operations with the length of a file: fpos_t flen;
When I try casting it to an int or char, or attempt on arithmetic operation on it, it fails with the following compilation error:
error: aggregate value used where an integer was expected
You’re misusing that type. First, it doesn’t represent a length. It represents a position. Second, it’s only meant to use in a call to
fsetpos. You’re not meant to do arithmetic on it because it doesn’t necessarily represent a numeric type. It contains whatever information your library needs to be able to perform anfsetposoperation. In your library’s implementation,fpos_tappears to be an aggregate type, such as a struct. (You can check the definition in the header files to be sure, but don’t rely on whatever you discover there; it’s liable to differ on other platforms or in future versions of your standard library.)As for your next step, consider asking a more direct question about how to solve whatever problem you were working on when you came up with the idea to do bitwise operations on a
fpos_t.