Как работает буфер обмена? [дубликат]

На глубоком уровне, как работает копирование чего-либо в буфер обмена? Есть ли файл, в котором хранится текст или изображение, которое я где-то копирую?

Я нашел Место в памяти буфера обмена , где на вопрос так и не ответили. Я также нашел много ссылок на xclip. У меня в настоящее время не установлен xclip, но мой буфер обмена работает нормально - например, я могу скопировать что-нибудь из Firefox и вставить в терминал без проблем. Итак, очевидно, что что-то должно происходить на другом уровне, чем xclip. Что это такое и как это работает?

1
задан 3 December 2017 в 03:09

1 ответ

X обращается с буфером обмена, и вы можете прочитать об этом здесь. https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt

X11 буфер обмена, который известен как выборки, определен в ICCCM. https://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html

Цитирование приведенной выше ссылки.

Может быть произвольное количество выборок, каждая из которых названа атомом. Однако, чтобы соответствовать межклиентским соглашениям, клиенты должны иметь дело только с этими тремя вариантами выбора:

ПЕРВИЧНЫЙ

ВТОРИЧНЫЙ

ПЛИС

Все эти выборки хранятся в памяти и не записываются на диск.

Стоит прочитать X Selections, Cut Buffers и Kill Rings . https://www.jwz.org/doc/x-cut-and-paste.html

Еще одно полезное чтение - Написание библиотеки кросс-платформенных буферов обмена https://jtanx.github.io/2016/08/19/a-cross-platform-clipboard-library/

Если вам интересно, как взаимодействовать с X11 выбор грамматически, а затем, безусловно, проверить исходный код xclip на GitHub. https://github.com/astrand/xclip

3
ответ дан 3 December 2017 в 03:09

Другие вопросы по тегам:

Похожие вопросы: