Onde os dados da área de transferência são armazenados?


11

Existe um arquivo real onde os dados são armazenados enquanto eu tenho algo na minha área de transferência?

Respostas:


14

O papelão é tratado pelo pbsprocesso no OS X. Os itens copiados são armazenados no pbsespaço de endereço. Mais sobre isso está no artigo Apple Pasteboard Server .

Se os dados são transferidos entre objetos no mesmo aplicativo ou em dois aplicativos diferentes, em um aplicativo Cocoa a interface é a mesma - um objeto NSPasteboard acessa um repositório compartilhado onde escritores e leitores se encontram para trocar dados. O gravador, chamado proprietário da área de transferência, deposita dados em uma instância de área de transferência e segue em frente. O leitor acessa a área de transferência de forma assíncrona, em algum momento não especificado no futuro. A essa altura, o objeto escritor talvez não exista mais. Por exemplo, um usuário pode ter fechado o documento de origem ou encerrado o aplicativo.

Conseqüentemente, ao mover dados entre dois aplicativos diferentes e, portanto, dois espaços de endereço diferentes, um terceiro espaço de memória é envolvido para que os dados persistam mesmo na ausência da fonte. O NSPasteboard fornece acesso a um terceiro espaço de endereço - um processo do servidor de papelão (pbs) - que está sempre sendo executado em segundo plano. O servidor de papelão mantém um número arbitrário de papéis individuais para distinguir entre várias transferências de dados simultâneas.


5

Como apontou Mateusz, não há arquivo com essa informação. No entanto, você pode usar pbcopye pbpastemanipular a área de transferência.

Por exemplo, ls | pbcopycopiará a saída (stdout) de lspara a área de transferência.

Página de manual do pbcopy.


3

O processo do servidor de área de transferência pboard não é pbse você pode verificar isso verificando as páginas de manual de ambos.

Agora que sabemos o processo correto, podemos:

  1. carregar o Activity Monitor
  2. procure o pboardprocesso
  3. obter informações usando cmd+i
  4. visualizar Abrir arquivos e portas

Podemos ver que os únicos arquivos abertos são ele próprio, dyld e o cache do dyld.

insira a descrição da imagem aqui


Parece que você está correto. Abri o Console.app e, depois de copiar algo, recebo logs do pboardprocesso. Estranho que as informações no site Appe estejam erradas. +1
Mateusz Szlosek

1
@MateuszSzlosek sim, é estranho. Eu relatei, mas ainda não foi alterado.
precisa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.