可以向文件写入少于1个字节
据我所知,C中的最小单位是一个byte
。 这种约束来自哪里? 中央处理器?
例如,如何将nibble
或单个bit
写入文件?
不,你不能……文件按字节组织,它是你可以保存的最小数据。
实际上,通常,1个字节将占用超过1个字节的空间。 根据操作系统,系统文件类型等,您保存为文件的所有内容都将使用至少一个块。 块的大小根据您使用的文件系统而有所不同。 然后,这个1位将被写为1字节,并且可以占用多达4kB的磁盘。
在维基百科中,您可以阅读有关字节是许多计算机中最小数据单元的内容。
实际上,它是一个char
byte
不是标准的C类型。
约束来自C标准并且是重复的: char
是C中最小的完整类型,因为它被定义为这样,并且所有其他类型的大小被定义为char
的大小的倍数(其大小始终为1
。
现在, char
的位数可能因平台而异。 位数最终往往是硬件定义的,尽管现在大多数系统都使用8位char
。 char
应该代表最小的可寻址内存单元(同样,根据定义。)
此外,数据被写入扇区中的文件(例如512字节左右)。 如果我们只需要改变一个字节,整个扇区就会被读取,修补和写回。
但你不需要思考各个部门。 要更改一位,只需在文件中寻找合适的字节位置,读取该字节,更改位并将结果写回。