Де зберігаються дані буфера обміну?


Відповіді:


14

Картон обробляється pbsпроцесом в OS X. Копіюються речі зберігаються всередині pbsадресного простору. Більше про це можна прочитати у статті Apple Pasteboard Server .

Незалежно від того, передаються дані між об'єктами в одній програмі або двома різними додатками, у програмі Cocoa інтерфейс однаковий - об’єкт NSPasteboard отримує доступ до спільного сховища, де письменники та читачі збираються для обміну даними. Письменник, який називається власником картону, зберігає дані на екземплярі картону і рухається далі. Потім читач звертається до картону асинхронно, в якийсь не визначений момент у майбутньому. До того часу об’єкт письменника може навіть не існувати більше. Наприклад, користувач, можливо, закрив вихідний документ або вийшов із програми.

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


5

Як зазначив Матеуш, жодної справи з цією інформацією немає. Однак можна використовувати pbcopyі pbpasteманіпулювати картоном.

Наприклад, ls | pbcopyбуде скопійовано вихід (stdout) lsна картон.

Сторінка людини для pbcopy.


3

Процес роботи на сервері картонних карток pboard не є pbs, і ви можете перевірити це, перевіривши підручні сторінки для обох.

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

  1. завантажувати Монітор активності
  2. пошук pboardпроцесу
  3. отримати інформацію за допомогою cmd+i
  4. переглянути Відкриті файли та порти

Ми можемо бачити, що єдині відкриті файли - це себе, dyld та кеш-пам'ять dyld.

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


Здається, ви праві. Я відкрив Console.app і після копіювання чогось я отримую журнали з pboardпроцесу. Дивно, що інформація на сайті Appe є неправильною. +1
Матеуш Шлосек

1
@MateuszSzlosek так це дивно. Я повідомив про це, але поки що це не було змінено.
Метт Сефтон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.