Gdzie są przechowywane dane ze schowka?

11

Czy istnieje plik, w którym przechowywane są dane, gdy mam coś w schowku?

Tomulent
źródło

Odpowiedzi:

14

Tektura jest obsługiwana przez pbsproces w systemie OS X. Kopiowane rzeczy są przechowywane w pbsprzestrzeni adresowej. Więcej informacji na ten temat znajduje się w artykule Apple Pasteboard Server .

Niezależnie od tego, czy dane są przesyłane między obiektami w tej samej aplikacji, czy w dwóch różnych aplikacjach, w aplikacji Cocoa interfejs jest taki sam - obiekt NSPasteboard uzyskuje dostęp do wspólnego repozytorium, w którym pisarze i czytelnicy spotykają się w celu wymiany danych. Pisarz, zwany właścicielem stołu montażowego, deponuje dane w wystąpieniu stołu montażowego i przechodzi dalej. Następnie czytnik uzyskuje dostęp do stołu asynchronicznego w pewnym nieokreślonym punkcie w przyszłości. Do tego czasu obiekt pisarza może już nawet nie istnieć. Na przykład użytkownik mógł zamknąć dokument źródłowy lub zamknąć aplikację.

W związku z tym podczas przenoszenia danych między dwiema różnymi aplikacjami, a zatem dwiema różnymi przestrzeniami adresowymi, angażowana jest trzecia przestrzeń pamięci, dzięki czemu dane pozostają w pamięci nawet przy braku źródła. NSPasteboard zapewnia dostęp do trzeciej przestrzeni adresowej - procesu serwera pasteboard (pbs) - który zawsze działa w tle. Serwer tektury utrzymuje dowolną liczbę pojedynczych tektur, aby rozróżnić kilka równoległych transferów danych.

Mateusz Szlosek
źródło
5

Jak zauważył Mateusz, nie ma pliku z tymi informacjami. Możesz jednak używać pbcopyi pbpastemanipulować tekturą.

Na przykład ls | pbcopyskopiuje wyjście (standardowe wyjście) lsna karton.

Strona podręcznika dla pbcopy.

aglasser
źródło
3

Proces serwera pasteboard pboard nie jest pbsi można to sprawdzić, sprawdzając strony podręcznika pod kątem obu.

Teraz, gdy znamy prawidłowy proces, możemy:

  1. załaduj Monitor aktywności
  2. wyszukaj pboardproces
  3. uzyskać informacje za pomocą cmd+i
  4. zobacz Otwórz pliki i porty

Widzimy, że jedyne otwarte przez nią pliki to sama, dyld i pamięć podręczna dyld.

wprowadź opis zdjęcia tutaj

Matt Sephton
źródło
Wygląda na to, że masz rację. Otworzyłem Console.app i po skopiowaniu czegoś otrzymuję logi z pboardprocesu. Dziwne, że informacje na stronie Appe są nieprawidłowe. +1
Mateusz Szlosek
1
@MateuszSzlosek tak, to dziwne. Zgłosiłem to, ale jak dotąd nie zostało to zmienione.
Matt Sephton,