In our sample application, we defined two data structures, ObjectMetadata1 and ObjectMetadata2, that will hold some metadata about file objects. We defined four fields that represent an object:
- Access flags: A combination of bits representing a type of file access, such as read, write, or execute. All bit fields are packed into a single uint8_t field.
- Size: Object size as a 32-bit unsigned integer. It limits the supported object size to 4 GB, but it is sufficient for our goal to demonstrate the importance of proper data alignment.
- Owner ID: A 32-bit integer that identifies a user in our system.
- Category: The category of the object. This can be a file, a directory, or a socket. Since we've only defined three categories, the ...