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? 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.