POSIX даже не требует нетривиального размера страницы;теоретически реализация может иметь размер страницы в 1 байт.Точно так же чтение нулей с остальной части страницы после размера файла, кажется, не определено.Я мог бы представить себе некоторые неработающие реализации, в которых утечка старого содержимого файлов, которые были усечены здесь, но я бы посчитал это серьезным нарушением безопасности / конфиденциальности, которое сделало бы такую реализацию неуместной в реальном мире.Конечно, они могли бы заполнить пространство 0xDEADBEEF
, и тогда вам не повезло.
Даже если бы вы могли предполагать заполнение нулями (что, вероятно, имеет место в большинстве реальных операционных систем),Я бы предостерег от того, чтобы когда-либо использовать это.Что произойдет, если ваш файл будет кратным системному размеру страницы?Внезапно ваш код перестает читать после конца, или (возможно, хуже) читает с несвязанной страницы, которая, как оказалось, была сопоставлена рядом с отображением вашего файла.Это очень и очень неприятная ошибка, которую вы, вероятно, не поймете, потому что вероятность наличия текстового файла, кратного системному размеру страницы, весьма мала.