クリップボードのデータはどこに保存されますか?


回答:


14

ペーストボードはpbs、OS Xのプロセスによって処理されます。コピーされるものは、pbsアドレス空間内に保存されます。詳細については、Apple Pasteboard Serverの記事をご覧ください。

同じアプリケーション内のオブジェクト間または2つの異なるアプリケーション間でデータを転送する場合、Cocoaアプリケーションではインターフェイスは同じです。NSPasteboardオブジェクトは、ライターとリーダーがデータを交換する共有リポジトリにアクセスします。ライターは、ペーストボードの所有者と呼ばれ、ペーストボードインスタンスにデータを預けて先に進みます。リーダーは、将来の不特定の時点で、ペーストボードに非同期的にアクセスします。その時までに、ライタオブジェクトはもう存在しないことさえあります。たとえば、ユーザーがソースドキュメントを閉じたり、アプリケーションを終了した可能性があります。

その結果、2つの異なるアプリケーション間、したがって2つの異なるアドレススペース間でデータを移動する場合、ソースがなくてもデータが保持されるように3番目のメモリスペースが関与します。NSPasteboardは、常にバックグラウンドで実行されている3番目のアドレススペース(ペーストボードサーバープロセス(pbs))へのアクセスを提供します。ペーストボードサーバーは、複数の同時データ転送を区別するために、任意の数の個別のペーストボードを保持します。


5

Mateuszが指摘したように、この情報を含むファイルはありません。しかし、あなたが使用することができますpbcopyし、pbpasteて、ペーストボードを操作。

たとえばls | pbcopy、出力(stdout)をlsペーストボードにコピーします。

pbcopyのマニュアルページ。


3

ペーストボードサーバープロセスはでpboard あり pbs、両方のマニュアルページを確認することで確認できます。

正しいプロセスがわかったので、次のことができます。

  1. アクティビティモニターをロードする
  2. pboardプロセスを検索する
  3. cmd+ を使用して情報を取得するi
  4. ビュー開いているファイルとポート

開いているファイルは、それ自体、dyld、およびdyldキャッシュのみであることがわかります。

ここに画像の説明を入力してください


あなたは正しいようです。Console.appを開いて、何かをコピーした後、pboardプロセスからログを取得します。Appeサイトの情報が間違っていることは奇妙です。+1
Mateusz Szlosek

1
@MateuszSzlosekはい、それは奇妙です。報告しましたが、これまでのところ変更されていません。
マットセフトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.