¿Hay un archivo real donde se almacenan los datos mientras tengo algo en mi portapapeles?
¿Hay un archivo real donde se almacenan los datos mientras tengo algo en mi portapapeles?
Pasteboard se maneja mediante el proceso pbs
en OS X. Las cosas que se copian se almacenan dentro del espacio de direcciones pbs
. Más sobre esto está en Apple Artículo de Pasteboard Server .
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 de la mesa de trabajo, deposita los datos en una instancia de la mesa de trabajo y continúa. Luego, el lector accede a la mesa de trabajo de forma asíncrona, en algún punto no especificado en el futuro. Para ese momento, el objeto escritor puede que ya no exista. Por ejemplo, un usuario puede haber cerrado el documento de origen o salir de la aplicación.
En consecuencia, al mover datos entre dos aplicaciones diferentes y, por lo tanto, dos espacios de direcciones diferentes, se involucra un tercer espacio de memoria, por lo que los datos persisten 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 pasteboard mantiene un número arbitrario de pasteboard individuales para distinguir entre varias transferencias de datos concurrentes.
Como señaló Mateusz, no hay ningún archivo con esta información. Sin embargo, puedes usar pbcopy
y pbpaste
para manipular la mesa de trabajo.
Por ejemplo, ls | pbcopy
copiará la salida (stdout) de ls
a la mesa de trabajo.
El proceso del servidor de pasteboard es pboard
no pbs
, y puede verificarlo revisando las páginas de manual para ambas.
Ahora que sabemos el proceso correcto, podemos:
pboard
Podemos ver que los únicos archivos que tiene abiertos son sí mismo, dyld y el caché dyld.