ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 июля
520501 Топик полностью
fk0, легенда (05.06.2014 17:39 - 17:48, просмотров: 185) ответил Vladimir Ljaschko на Проблема в том, что нужно постоянно подставлять обновленную информацию в обе стороны уже после того, как операционка подхватила. Протокольная передача не катит, т.к. должно работать b на PC и на MAC, а программировать MAC никто не умеет.
После того, как операционка подхватила -- в общем случае невозможно записать что-то на флешку со стороны: операционка прочитала уже часть флешки и закешировала в ОЗУ, и перечитывать не будет. И если из операционки во флешку информацию всё ещё можно передать (постоянно записывая файлы), то в обратную сторону вообще толком никак (современный ПК запросто и всю флешку может закешировать). Более детально. С записью тоже проблемы, потому, что операционка записывает данные на флешку в каком попало порядке. Большую часть времени записанные таким образом данные даже валидны. Но нет гарантии, что прочитаются они в нужное время... С чтением можно эмулировать ОЧЕНЬ БОЛЬШУЮ (йобибайты) флешку и таким образом обойти кеш на чтение. Если читать всё время с разных секторов (очень разных, ибо операционка будет делать упреждающее чтение на сколько-то секторов вперёд). Но практически это невозможно реализовать с файловой системой FAT (операционка весь фат сразу закеширует, да и FAT не поддерживает йобибайтных дисков), да и с другой системой -- сомнительно. Разве что без файловой системы. Тогда можно всё сделать, т.к. адреса для чтения-записи однозначно определяются ПО. Но я затрудняюсь сказать как писать в диск без файловой системы на Windows, а на MAC тем более. И не факт, вообще, что без "Администратора" и т.п. это выйдет. Потенциально можно использовать чтение-запись из/в файл на предварительно размеченной флешке, где файл занимает весь диск. По методике применённой выше. Но тут такая трудность, что операционка может поменять фат и решит писать в незанятые сектора. Можно разметить так, что не будет ни одного свободного сектора. Но тогда не факт вообще, что не возникнет ошибки "нет места" при записи, или что операционка таки не поменяет местами как-нибудь куски файла. И опять же флешка нужна очень большая и всё равно срок работы ограничен исчерпанием недозаписанных секторов. На запись можно выкрутиться действительно, если в каждые 512 байт файла размещать какую-то метку, чем сектор является в действительности, тогда абсолютно без разницы куда он записан (но на коротком промежутке времени всё же нужно использовать разные смещения в файле, ибо отложенная запись в ОСи). А с чтением: сделать на флешке два диска. Один не очень большой, для записи. А второй на 100500 йобибайт для чтения, с одним сверхбольшим файлом, читаемым послеодвательно через каждые 100500 мегабайт (чтоб не закешировалось точно).
[ZX]