Где хранятся данные буфера обмена?

11

Есть ли настоящий файл, в котором хранятся данные, пока у меня что-то есть в буфере обмена?

Tomulent
источник

Ответы:

14

Картон обрабатывается pbsпроцессом в OS X. Вещи, которые копируются, хранятся в pbsадресном пространстве. Подробнее об этом в статье Apple Pasteboard Server .

Независимо от того, передаются ли данные между объектами в одном и том же приложении или двух разных приложениях, в приложении Какао интерфейс одинаков - объект NSPasteboard обращается к общему хранилищу, где писатели и читатели встречаются для обмена данными. Автор, называемый владельцем монтажной панели, помещает данные в экземпляр монтажной панели и продолжает работу. Затем читатель обращается к монтажному щиту асинхронно, в какой-то неопределенной точке в будущем. К тому времени объект-писатель может даже больше не существовать. Например, пользователь может закрыть исходный документ или выйти из приложения.

Следовательно, при перемещении данных между двумя разными приложениями и, следовательно, двумя разными адресными пространствами, включается третье пространство памяти, поэтому данные сохраняются даже в отсутствие источника. NSPasteboard обеспечивает доступ к третьему адресному пространству - процессу сервера монтажа (pbs), которое всегда работает в фоновом режиме. Сервер монтажных плат поддерживает произвольное количество отдельных монтажных плат, чтобы различать несколько одновременных передач данных.

Матеуш Шлосек
источник
5

Как указал Матеуш, нет файла с этой информацией. Тем не менее, вы можете использовать pbcopyи pbpasteманипулировать картона.

Например, ls | pbcopyскопирует вывод (stdout) lsв монтажную панель.

Справочная страница для pbcopy.

aglasser
источник
3

Процесс сервера монтажа pboard не выполняется pbs, и вы можете убедиться в этом, проверив страницы man для обоих.

Теперь, когда мы знаем правильный процесс, мы можем:

  1. загрузить Activity Monitor
  2. поиск pboardпроцесса
  3. получить информацию, используя cmd+i
  4. просмотреть открытые файлы и порты

Мы видим, что открытые файлы - это сам dyld и кеш dyld.

введите описание изображения здесь

Мэтт Сефтон
источник
Кажется, вы правы. Я открыл Console.app и после копирования чего-то я получаю журналы pboardпроцесса. Странно, что информация на сайте Appe неверна. +1
Матеуш Шлосек
1
@MateuszSzlosek да это странно. Я сообщил об этом, но это не было изменено до сих пор.
Мэтт Сефтон