LINUX.ORG.RU

Ответ на: комментарий от Silerus

И как он определит размер, который надо передавать в resize? Читать файл всё равно придётся.

ТС: совсем по-простому не получится, файл для ОС — это набор байт, а строки это уже абстракция уровнем выше.

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

Как это сделать по простому, не переписывая его.

А где ТС сказал что читать нельзя? Ресайз самое то, нашел позицию и вперед.

LinuxDebian ★★★★
()
Последнее исправление: LinuxDebian (всего исправлений: 1)
Ответ на: комментарий от hobbit

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

Silerus ★★★★
()

Как это сделать по простому, не переписывая его.

Никак, у тебя всё равно будет операция записи. А так — ищи перенос строки с конца файла, да удаляй всё, что до него

XMs ★★★★★
()

Принципиально qfile?

#include <unistd.h>
int ftruncate(int fildes, off_t length);
int truncate(const char *path, off_t length);
length ищем с конца файла до символа '\n'

olelookoe ★★★
()

не переписывая его.

Это как? По своим свойствам это уже будет другой файл, даже если он виртуальный.

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