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?

Tomulento
fonte

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.

Mateusz Szlosek
fonte
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.

aglasser
fonte
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

Matt Sephton
fonte
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