¿Dónde se almacenan los datos del portapapeles?

11

¿Hay un archivo real donde se almacenan los datos mientras tengo algo en mi portapapeles?

Tomulento
fuente

Respuestas:

14

Pasteboard se maneja por pbsproceso en OS X. Las cosas que se copian se almacenan dentro del pbsespacio de direcciones. Más sobre eso está en el artículo del servidor Apple Pasteboard .

Ya sea que los datos se transfieran entre objetos en la misma aplicación o en dos aplicaciones diferentes, en una aplicación Cocoa la interfaz es la misma: un objeto NSPasteboard accede a un repositorio compartido donde los escritores y lectores se reúnen para intercambiar datos. El escritor, conocido como el propietario del cartón, deposita datos en una instancia de cartón y continúa. Luego, el lector accede al cartón de forma asincrónica, en algún momento no especificado en el futuro. Para entonces, el objeto escritor puede que ya no exista. Por ejemplo, un usuario puede haber cerrado el documento fuente o salir de la aplicación.

En consecuencia, cuando se mueven datos entre dos aplicaciones diferentes y, por lo tanto, dos espacios de direcciones diferentes, se involucra un tercer espacio de memoria para que los datos persistan incluso en ausencia de la fuente. NSPasteboard proporciona acceso a un tercer espacio de direcciones, un proceso de servidor de cartón (pbs), que siempre se ejecuta en segundo plano. El servidor de cartón mantiene un número arbitrario de paneles individuales para distinguir entre varias transferencias de datos simultáneas.

Mateusz Szlosek
fuente
5

Como Mateusz señaló, no hay ningún archivo con esta información. Sin embargo, puede usar pbcopyy pbpastemanipular el cartón.

Por ejemplo, ls | pbcopycopiará la salida (stdout) de lsal tablero.

Página de manual para pbcopy.

aglasser
fuente
3

El proceso del servidor de cartón pboard no lo es pbs, y puede verificarlo revisando las páginas del manual para ambos.

Ahora que conocemos el proceso correcto podemos:

  1. cargar Monitor de actividad
  2. buscar el pboardproceso
  3. obtener información usando cmd+i
  4. ver archivos y puertos abiertos

Podemos ver que los únicos archivos que tiene abiertos son sí mismo, dyld y el caché dyld.

ingrese la descripción de la imagen aquí

Matt Sephton
fuente
Parece que tienes razón. Abrí Console.app y después de copiar algo, obtengo registros del pboardproceso. Es extraño que la información en el sitio de Appe sea incorrecta. +1
Mateusz Szlosek
1
@MateuszSzlosek sí, es extraño. Lo informé pero no se ha cambiado hasta ahora.
Matt Sephton