Search code examples
cfilelow-levelbit

It is possible to write less than 1 byte to a file


As far as I know the smallest unit in C is a byte. Where does this constraint comes from? CPU?

For example, how can I write a nibble or a single bit to a file?


Solution

  • no, you can't... files are organized in bytes, it's the smallest piece of data you can save.

    And, actually, that 1 byte will occupy more than 1 byte of space, in general. Depending on the OS, the system file type, etc, everything you save as a file will use at least one block. And the block's size varies according to the file system you're using. Then, this 1-bit will be written as 1 - byte and can occupy as much as 4kB of your disk.

    In wikipedia you can read something about the byte being the smallest data unit in many computers.