Первый будет читать 5 байтов, останавливаясь рано только при обнаружении EOF.
Последний будет читать 4 байт (оставляя место для нулевого завершения), рано останавливаясь при обнаружении EOF или при обнаружении '\n'
.
То, что вы хотите, зависит от того, намереваетесь ли вы a
вести себя семантически как C-строка.