Открыть как картинку: Lister из Total Commander, любой продвинутый просмотрщик картинок (XnView, FastStone…), любой нормальный графический редактор (Paint.NET, GIMP, PhotoShop…)
Увидеть внутреннее устройство: любой HEX-просмотрщик (проще всего Lister из Total Commander) или HEX-редактор. К сожалению, текстовым редактором двоичный файл лучше не открывать, файл может необратимо испортиться.
Работать программно: насколько мне известно, поддерживает Qt.
Если именно на Си —
https://sourceforge.net/projects/libimage/
Написать поддержку самому: достаточно качественное описание есть ан англовике:
https://en.wikipedia.org/wiki/BMP_file_format
Также вот несколько готовых структур:
jenyay.net/Programming/Bmp paulbourke.net/dataformats/bmp
Вот пример самодельной поддержки BMP для OpenGL:
paulbourke.net/dataformats/bmp/BITMAP.C