Вы можете использовать функцию усечения .
int truncate(const char *path, off_t length);
Со страницы руководства:
"Функции truncate () и ftruncate () приводят к усечению обычного файла с именем path или ссылкой на fd до размера байтов с точной длиной. Если файл ранее был больше этого размера, дополнительные данные теряются . Если файл ранее был короче, он расширяется, и расширенная часть читается как нулевые байты "