Czy istnieje plik, w którym przechowywane są dane, gdy mam coś w schowku?
Tektura jest obsługiwana przez pbs
proces w systemie OS X. Kopiowane rzeczy są przechowywane w pbs
przestrzeni 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.
Jak zauważył Mateusz, nie ma pliku z tymi informacjami. Możesz jednak używać pbcopy
i pbpaste
manipulować tekturą.
Na przykład ls | pbcopy
skopiuje wyjście (standardowe wyjście) ls
na karton.
Proces serwera pasteboard pboard
nie jest pbs
i można to sprawdzić, sprawdzając strony podręcznika pod kątem obu.
Teraz, gdy znamy prawidłowy proces, możemy:
pboard
procesWidzimy, że jedyne otwarte przez nią pliki to sama, dyld i pamięć podręczna dyld.
pboard
procesu. Dziwne, że informacje na stronie Appe są nieprawidłowe. +1