Russian Qt Forum

Qt => Вопросы новичков => Тема начата: VVN от Октябрь 05, 2011, 20:41



Название: Вопросы по потокам и файлам
Отправлено: VVN от Октябрь 05, 2011, 20:41
Здравствуйте.
Просветите пожалуйста.

Принимаю данные по USB которые при необходимости нужно сохранить в файл.
Есть возможность сохраненные файлы открыть.

Пока реализовал следующим образом.

Прием данных.
Открываю файл ему назначаю поток.
Пишу в поток периодически делаю flush()

Реализовал и немного призадумался.

Нужно ли делать постоянно flush() сохранность данных не критична.
Вопрос следующего плана какой объем можно писать в поток?

В зависимости от времени подключения USB устройства там может и 1 гиг насосаться.
Савапятся ли потоки автоматом, или им нужно периодики делать flush()?

Я правильно понимаю из названия поток - это есть реальный поток типа QThread?

Можно ли просто открыть поток, а потом назначить ему файл?
Если да то как?




Название: Re: Вопросы по потокам и файлам
Отправлено: Пантер от Октябрь 06, 2011, 09:04
Какой поток? Что используешь для записи данных? QDataStream?


Название: Re: Вопросы по потокам и файлам
Отправлено: Igors от Октябрь 06, 2011, 10:03
Дословный перевод

stream = поток
thread = нить

Но, к сожалению, в русской терминологии укоренилось что поток - это thread, "многопоточность" multi-threading и.т.п. Поэтому не запутывайте общественность и употребляйте "поток" только в связи с (Q)thread, а не с файлом. Иначе Вас никто не поймет. Чтение/запись файлов "потокобезопасны", но нитки и файлы в общем случае никак не связаны.

Что касается flush то как минимум лет 10 назад я читал примерно такую фразу: "использование flush (и даже close) НЕ гарантирует физической записи на диск". Др. словами это личное дело конкретного ОС. Вероятно проще тот flush выкинуть.


Название: Re: Вопросы по потокам и файлам
Отправлено: VVN от Октябрь 06, 2011, 16:41
Какой поток? Что используешь для записи данных? QDataStream?
Да его родимого и использую.


Но, к сожалению, в русской терминологии укоренилось что поток - это thread, "многопоточность" multi-threading и.т.п. Поэтому не запутывайте общественность и употребляйте "поток" только в связи с (Q)thread, а не с файлом. 


Спасибо за ответ.
Да я и не запутываю, а спрашиваю.

У меня попутно вопрос по Win.

Есть ли рекомендации какой максимальный кусок в памяти можно безопасно выделить для приложения?




Название: Re: Вопросы по потокам и файлам
Отправлено: andrew.k от Октябрь 07, 2011, 00:09
столько сколько бы ты хотел, чтобы программы жрали на твоем компьютере)
Выделяй столько, сколько действительно необходимо.


Название: Re: Вопросы по потокам и файлам
Отправлено: VVN от Октябрь 07, 2011, 19:15
Выделяй столько, сколько действительно необходимо.

Дело в том что приложение которое я разрабатываю может насосать бес предела.

Поэтому задумался над тем, что надо как то ограничивать это дело.
Думаю сделать порог 300 - 500 мег.
После чего все обламывается и выдаем сообщение пользователю.


Название: Re: Вопросы по потокам и файлам
Отправлено: andrew.k от Октябрь 07, 2011, 22:30
что за приложение такое, интересно?


Название: Re: Вопросы по потокам и файлам
Отправлено: VVN от Октябрь 08, 2011, 01:04
что за приложение такое, интересно?

Сбор, отображение данных с самодельного внешнего устройства через USB.
Протокол HID.