Не знаю, как в PHP, но обычно у каждой ASCII строки есть завершающий символ \0, означающий конец строки.
То есть, "text" выглядит как 0x74 0x65 0x78 0x74 0x00
Возможно, один байт тратится именно на это
байт тратится в начале , а не в конце,,,например если писать fgetss($handle, 1), то ничего не будет выведено,,,,следовательно этот призрачный байт в начале,,,ну впрочем в документации написано что функция возвращяет length-1 байт,,,