LINUX.ORG.RU

Длительная работа с большим объемом данных на C++

 ,


0

2

Возникла необходимость написать простую программу, которая будет считывать данные по rs-232 и записывать их в файл. Пишу я ее на C++ с использованием QtSerialPort. Собственно, с написанием работающей программы проблем нет, но есть сомнения в ее надежности.

Дело в том, что программа должна работать непрерывно, в течении 2-х часов. За это время она непрерывно получает 12-байтные пакеты из порта, преобразовывает их и пишет в файл. В выходном текстовом файле за все время работы накопится порядка 36кк строк. Программа будет запускаться на компьютере с 2Гб ОЗУ и файловой системой ext3.

Хотелось бы знать не зависнет ли программа, когда накопится много данных? Не будет ли она тормозить и терять из-за этого данные (пакеты из порта идут непрерывным потоком)?

У меня нет возможности протестировать все заранее.

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

Программа может хоть месяц читать из порта и писать в файл

Когда файл вырастет до 400-500 Мб, запись в него не будет тормозить?

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

Когда файл вырастет до 400-500 Мб, запись в него не будет тормозить?

нет. Если использовать O_APPEND, то можно хоть 100Гб и больше.

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

А можно конкретики?

ну если вы делаете mmap(2), то конечно будет уныло. В 32х битной системе так вообще больше 2Г не замапить. Ну а с вашими 2Г так вообще.

PS: Read The Fucкing Manuals

man 2 open

man 2 write

man 3 fopen

man 3 fwrite

man 2 mmap (вам этого не нужно, но почитайте для общего развития)

emulek
()
Последнее исправление: emulek (всего исправлений: 2)
Ответ на: комментарий от panter_dsd

Ахах... Программа годами может это делать... не только лишь месяц :)

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