Как открыть текстовый файл из CLI с помощью работающего экземпляра текстового редактора GTK, написанного на C?

У меня есть текстовый редактор, написанный на C с использованием gtk+-3.x и gtksourceview3. Хотелось бы расширить функционал, включить возможность открыть текстовый файл из командной строки и добавить текст из этого файла в новый буфер в ранее открытом редакторе.

Итак, вопрос в том, как мне получить доступ к этому тексту? Я могу добавить его в буфер, прокрутить... это не проблема. Спасибо.


person nomadicME    schedule 03.12.2014    source источник
comment
вы можете попробовать: fopen( argv[1], r+), затем используйте fseek(), чтобы добраться до конца файла, затем используйте ftell(), чтобы определить текущую длину файла, затем используйте malloc, чтобы создать пространство в вашей программе для содержимого файла . Я предполагаю, что программа уже может хранить части рабочего набора файлов на диске и т.д. и т.п.   -  person user3629249    schedule 04.12.2014
comment
Можешь попробовать объяснить, с какой частью у тебя проблемы? общение с уже запущенным приложением или открытие файла или что?   -  person Jussi Kukkonen    schedule 04.12.2014


Ответы (1)


Я предполагаю, что ваша проблема заключается в том, что упомянуто в заголовке: заставить уже запущенный экземпляр приложения GTK сделать что-то из командной строки.

GtkApplication и его базовый класс GApplication предоставят вам необходимые инструменты: для определения действий, которые новый экземпляр может вызывать в исходном экземпляре (используя D-Bus, но это детали реализации). Для вашего варианта использования взгляните на уже определенное действие «открыть» в GApplication (см. пример).

Если вы используете старую версию GTK+, в которой нет GtkApplication, вы можете вместо этого использовать libunique — API примерно такой же.

person Jussi Kukkonen    schedule 04.12.2014