すいません、C言語で判らない所が出てきたので教えてください。
お聞きしたいことは標準関数のfgets()の事です。

下記のプログラムは、入力されたBMPファイルの頭2バイトが「BM」かチェックする関数です。

fgets()の第2引数が取得するバイト数ですが、2を指定しているにも関わらず1バイトしか取得できません。

仕方がないので私は3を指定して逃げましたが。。。
どうして取得したいバイト数+1を指定しなければいけないのでしょうか?

fgets()の使い方で注意する点等ございましたらご教示ください。
よろしくお願い致します。