Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Piszę aplikację w Qt, której jednym z zadań będzie kopiowanie jej raportów na pendrive, z tym, że będzie ona obsługiwana przez osoby, które mogą bez odmontowania usuwać pendriva z portu usb, a jak wiadomo jest buffering, i przy takiej czynności dane się nie zapisują. Pytanie czy można tak montować pendriva, aby od razu zapisywało dane bez bufferowania ( partycje fat oraz ntfs)? Druga sprawa jak najlepiej zaimplementować montowanie, aby aplikacja "wiedziała", gdzie zapisywać dane? Czy zaprzęgnąć do tego udev i nakazać mu montowanie pendrive w jednej lokalizacji, czy może obsłużyć juz z aplikacji montowanie i odmontowanie za pomocą zwykłego polecenia mount? Dodam, że będzie to na debianie, i jednocześnie do sprzętu będzie można podpiąć tylko jedno urządzenie usb. Pozdrawiam
Offline
Zapisywanie bez buforów opcja sync polecenia mount.
Co co rozwiązania montowania, najprościej użyć funkcji system i polecenia mount/umount z odpowiednimi parametrami: po pierwsze zamontujesz gdzie chcesz, rozpozna sam czy fat/czy ntfs (oczywiście muszą być zainstalowane potrzebne pakiety).
Zresztą montowanie z opcją sync jest zupełnie nie potrzebne, możesz montować "normalnie", potem wywołać sync, następnie odmontować nośnik. Zawsze możesz wprowadzić funkcję weryfikacji danych, przed kopiowaniem raportu gererujesz jego sumę kontrolną (CRC, MD5, itp), potem montujesz, kopiujesz, sync, odmontowujesz, potem znowu montujesz, porównujesz sumę kontrolną, odmontowujesz. A użytkownikowi wyświetlasz komunikaty: włóż pendrive, zapisywanie danych - nie wyciągaj nośnika, trwa weryfikacja danych, możesz wyciągnąć nośnik.
Oczywiście Ty jesteś odpowiedzialny za to, aby napisać obsługę wszystkich błędów jakie mogą się pojawić, z typu niezapisywany nośnik, wyjęcie nośnika w czasie zapisu...
Offline
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00108 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.135.206.212' WHERE u.id=1 |
0.00082 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.135.206.212', 1732742740) |
0.00063 | SELECT * FROM punbb_online WHERE logged<1732742440 |
0.00077 | SELECT topic_id FROM punbb_posts WHERE id=196060 |
0.00099 | SELECT id FROM punbb_posts WHERE topic_id=20788 ORDER BY posted |
0.00085 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=20788 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00077 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=20788 ORDER BY p.id LIMIT 0,25 |
0.00096 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20788 |
Total query time: 0.00709 s |