Block devices access data in blocks which come from a system buffer cache. Only blocks of data of a certain size are read from a block device.
Character devices access data on a character by character basis. Programs such as terminal and pseudo-terminal device drivers that want to do their own input and output buffering use character devices. Some types of hardware, such as disks and tapes, can have both character and block device files. The difference is that the character interface for disks bypasses the buffer cache.
The section "Device Names" in this chapter explains the naming conventions for block and character device files.