Обычный ANSI C не предоставляет никакого стандартного способа уменьшения размера файла - единственный способ сделать это в стандартном C - это скопировать все содержимое файла в новый файл, за исключением части, которую вы хотите опустить.
Кроме того, вы можете использовать специфичные для ОС функции для усечения файла на месте.Например, POSIX предоставляет функцию ftruncate()
, которая сокращает файл до заданной длины.Вы должны искать начало последней строки, а затем обрезать файл непосредственно перед этим (используя lseek()
для получения позиции).
Самый простой вариант из всех, если у вас есть GNU head
, просто использовать это:
head -n -1 < file.original > file.new