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