Я довольно хорош в программировании (сделал несколько приложений и несколько стажировок), но на самом деле не имею большого опыта работы с текстовыми редакторами / файловыми системами. Вот некоторый контекст относительно того, что я пытаюсь сделать:

Я хочу создать инструмент, в котором пользователь может загрузить или смонтировать любой текстовый файл, открыть / отредактировать его в любом текстовом редакторе, а также попросить другого пользователя сделать то же самое. Изменения между пользователем будут обрабатываться и распространяться каждому пользователю с помощью этого инструмента.

Мои первоначальные мысли заключались в том, что сделать что-то подобное можно было бы невозможно, потому что текстовые редакторы могут поместить какую-либо "блокировку" в файл или что они сначала сохраняют файл в памяти, а затем сохраняют его на диск. Я также подумал, что возможно передать поток в редактор и затем управлять этим потоком ...? Я предполагаю, что это также может зависеть от каждого текстового редактора и от того, как он работает.

Поэтому мне интересно, кто-нибудь может дать мне какой-нибудь совет или понимание того, как текстовые редакторы занимаются редактированием файлов? Они загружают файл в память, как я думал? Можно ли изменить память после загрузки или она защищена?

1 ответ1

0

Во-первых, большинство операционных систем предоставляют API для регистрации уведомлений при изменении файлов (например, в windows - http://msdn.microsoft.com/en-us/library/windows/desktop/aa365261%28v=vs.85%29. aspx). Это полезно после того, как другой редактор зафиксирует изменения на диске, альтернативой является опрос (повторное чтение файла в заранее определенные периоды).

Что касается памяти, доступ к памяти других процессов не прост, обычным способом является их кооперативность (например, с помощью методов межпроцессного взаимодействия).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .