В документации говорится, что read(n)
читает до n
байтов, но может возвращать меньше. Вам придется вызывать его в цикле, пока он не вернёт пустую строку, указывающую EOF.
Если вы не хотите реализовывать этот цикл (что полезно только в том случае, если у вас есть собственная система буферизации или потоковой передачи)), просто вызовите read()
без аргумента размера, чтобы получить все данные за один раз.