Чи є фактичний файл, де зберігаються дані, коли я щось маю у своєму буфері обміну?
Чи є фактичний файл, де зберігаються дані, коли я щось маю у своєму буфері обміну?
Відповіді:
Картон обробляється pbsпроцесом в OS X. Копіюються речі зберігаються всередині pbsадресного простору. Більше про це можна прочитати у статті Apple Pasteboard Server .
Незалежно від того, передаються дані між об'єктами в одній програмі або двома різними додатками, у програмі Cocoa інтерфейс однаковий - об’єкт NSPasteboard отримує доступ до спільного сховища, де письменники та читачі збираються для обміну даними. Письменник, який називається власником картону, зберігає дані на екземплярі картону і рухається далі. Потім читач звертається до картону асинхронно, в якийсь не визначений момент у майбутньому. До того часу об’єкт письменника може навіть не існувати більше. Наприклад, користувач, можливо, закрив вихідний документ або вийшов із програми.
Отже, при переміщенні даних між двома різними програмами, а отже, і двома різними адресами, третій простір пам’яті залучається, тому дані зберігаються навіть у відсутності джерела. NSPasteboard надає доступ до третього адресного простору - процесу сервера на картоні (pbs) - який завжди працює у фоновому режимі. Сервер картонних карток підтримує довільну кількість індивідуальних картонних карт, щоб розрізняти декілька паралельних передач даних.
Як зазначив Матеуш, жодної справи з цією інформацією немає. Однак можна використовувати pbcopyі pbpasteманіпулювати картоном.
Наприклад, ls | pbcopyбуде скопійовано вихід (stdout) lsна картон.
Процес роботи на сервері картонних карток pboard не є pbs, і ви можете перевірити це, перевіривши підручні сторінки для обох.
Тепер, коли ми знаємо правильний процес, ми можемо:
pboardпроцесуМи можемо бачити, що єдині відкриті файли - це себе, dyld та кеш-пам'ять dyld.
pboardпроцесу. Дивно, що інформація на сайті Appe є неправильною. +1