Où sont stockées les données du presse-papiers?

11

Existe-t-il un fichier réel où les données sont stockées alors que j'ai quelque chose dans mon presse-papiers?

Tomulent
la source

Réponses:

14

Pasteboard est géré par pbsprocessus sous OS X. Les éléments copiés sont stockés dans l' pbsespace d'adressage. Pour en savoir plus, consultez l' article d' Apple Pasteboard Server .

Que les données soient transférées entre des objets dans la même application ou deux applications différentes, dans une application Cocoa, l'interface est la même: un objet NSPasteboard accède à un référentiel partagé où les écrivains et les lecteurs se rencontrent pour échanger des données. L'auteur, appelé propriétaire de la table de montage, dépose des données sur une instance de table de montage et passe à autre chose. Le lecteur accède ensuite à la table de montage de manière asynchrone, à un moment non spécifié dans le futur. À ce moment-là, l'objet écrivain peut même ne plus exister. Par exemple, un utilisateur peut avoir fermé le document source ou quitter l'application.

Par conséquent, lors du déplacement de données entre deux applications différentes, et donc deux espaces d'adressage différents, un troisième espace mémoire est impliqué de sorte que les données persistent même en l'absence de la source. NSPasteboard donne accès à un troisième espace d'adressage - un processus de serveur de carton (pbs) - qui s'exécute toujours en arrière-plan. Le serveur de tables de montage conserve un nombre arbitraire de tables de montage individuelles pour distinguer plusieurs transferts de données simultanés.

Mateusz Szlosek
la source
5

Comme l'a souligné Mateusz, il n'y a pas de fichier contenant ces informations. Cependant, vous pouvez utiliser pbcopyet pbpastepour manipuler la table de montage.

Par exemple, ls | pbcopycopiera la sortie (stdout) de lsdans la table de montage.

Page de manuel pour pbcopy.

aglasser
la source
3

Le processus du serveur de table de montage pboard ne l' est paspbs , et vous pouvez le vérifier en vérifiant les pages de manuel pour les deux.

Maintenant que nous connaissons le bon processus, nous pouvons:

  1. charger Activity Monitor
  2. rechercher le pboardprocessus
  3. obtenir des informations en utilisant cmd+i
  4. afficher les fichiers et les ports ouverts

Nous pouvons voir que les seuls fichiers qu'il a ouverts sont lui-même, dyld et le cache dyld.

entrez la description de l'image ici

Matt Sephton
la source
Il semble que vous ayez raison. J'ai ouvert Console.app et après avoir copié quelque chose, je reçois des journaux du pboardprocessus. Étrange que les informations sur le site Appe soient fausses. +1
Mateusz Szlosek
1
@MateuszSzlosek oui c'est étrange. Je l'ai signalé mais il n'a pas été modifié jusqu'à présent.
Matt Sephton