Как записывать в файл до тех пор пока есть место в нем?
Это не функционал файловой системы. Порешай такие задачи на уровне прикладного кода. Это не сложно.
Более того. В свете развития современных файловых систем (облачных систем) понятие "свободное место" сильно девальвировало. Его стало сложно посчитать. Оно уже не является уравнением где можно суммировать логический размер файлов и что-то прикидывать. Файлы стали обладать свойством SPARSE - разреженные, COMPRESSED - сжатые, стали иметь хард-линки (несколько внешних имен одного файла).
Во времена 32х битных ОС файлы часто ограничивались в 2Гб сверху. И это и сейчас наблюдается по
устаревшим API для файлов. А после ext4 например размер файлов лимитирован числом exbibyte а это на 12
порядков поболее чем 32х битки. Короче такой размер нам никогда не заполнить ничем.
Кроме того при использовании PIPELINE или канальных устройств само понятие размер файла лишено
смысла. Файл представляет собой трубу через которую с одно стороны пишут а с другой читают
информацию. И это - хорошо. Это гибкость файловой системы которую развивают еще со времен ОС Unix.
Зачем нам эту гибкость ограничивать.