Accedere ad un file è possibile, a qualsiasi file, per leggere/scrivere byte.
Ma quei file hanno una struttura particolare di cui il tuo programma deve tener conto. Il C/C++ non conosce le regole di tale struttura quindi, anche aprendoli, non è capace di gestirne semplicemente il contenuto.
In tutti e due i casi hai bisogno di funzioni già realizzate (magari delle liberie) da richiamare per farlo correttamente.