Russian Qt Forum
Апрель 29, 2024, 01:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопросы по потокам и файлам  (Прочитано 4293 раз)
VVN
Чайник
*
Offline Offline

Сообщений: 52


Просмотр профиля
« : Октябрь 05, 2011, 20:41 »

Здравствуйте.
Просветите пожалуйста.

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

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

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

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

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

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

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

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


« Последнее редактирование: Октябрь 05, 2011, 20:44 от VVN » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Октябрь 06, 2011, 09:04 »

Какой поток? Что используешь для записи данных? QDataStream?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Октябрь 06, 2011, 10:03 »

Дословный перевод

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

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

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

Сообщений: 52


Просмотр профиля
« Ответ #3 : Октябрь 06, 2011, 16:41 »

Какой поток? Что используешь для записи данных? QDataStream?
Да его родимого и использую.


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


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

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

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


Записан
andrew.k
Гость
« Ответ #4 : Октябрь 07, 2011, 00:09 »

столько сколько бы ты хотел, чтобы программы жрали на твоем компьютере)
Выделяй столько, сколько действительно необходимо.
Записан
VVN
Чайник
*
Offline Offline

Сообщений: 52


Просмотр профиля
« Ответ #5 : Октябрь 07, 2011, 19:15 »

Выделяй столько, сколько действительно необходимо.

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

Поэтому задумался над тем, что надо как то ограничивать это дело.
Думаю сделать порог 300 - 500 мег.
После чего все обламывается и выдаем сообщение пользователю.
Записан
andrew.k
Гость
« Ответ #6 : Октябрь 07, 2011, 22:30 »

что за приложение такое, интересно?
Записан
VVN
Чайник
*
Offline Offline

Сообщений: 52


Просмотр профиля
« Ответ #7 : Октябрь 08, 2011, 01:04 »

что за приложение такое, интересно?

Сбор, отображение данных с самодельного внешнего устройства через USB.
Протокол HID.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.