LINUX.ORG.RU

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

tailgunner ★★★★★
()

открываешь файл, открываешь тмп файл, пишешь в тмп верхужку данного файла - до удаляемого куска, далее пишешь в тмп всё, что находится после удаляемого куска. потом переименовываешь тмп файл в данный файл.

=>(_!_)=> но работает =)

asgard
()
Ответ на: комментарий от asgard

Открываешь файл, ммэпишь файл, копируешь memmove-ом кусок данных после удаляемого куска со смещением в размер удаляемого куска, затем ftruncate.

Sorcerer ★★★★★
()
Ответ на: комментарий от Sorcerer

> Открываешь файл, ммэпишь файл, копируешь memmove-ом кусок данных после удаляемого куска со смещением в размер удаляемого куска, затем ftruncate.

а если ему, допустим, на ia32 из файла в 4Gb в конце подрезать чуток надо? ;) хотя в принципе подход интересный.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

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

Teak ★★★★★
()

Я бы сделал это в несколько приёмов через dd. Ключики count и skip к вашим услугам.

ovax ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.