日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux剪贴板复制文件原理,linux剪贴板原理

發布時間:2024/4/17 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux剪贴板复制文件原理,linux剪贴板原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 X window system中,窗體之間傳輸數據,使用的是“selection”,也就是常說的“剪貼板”

X window system中支持任意的selection.

其中,最重要的是PRIMARY selection,然后是CLIPBOARD selection,還有已經廢棄的CUT_BUFFER(0~7)。

而 X Window 把這種叫做“選擇”(selection),有支持兩種方式:一種是主(Primary)選擇,一種是剪貼板(Clipboard)選擇。其實還有一個副(Secondary)選擇,但已經過時不用。和 Windows 不同的是,沒有一個全局的緩沖區來保存拷貝的信息。其工作方式是這樣的:當一個程序中選擇了一些東西,它就說“我現在是當前選擇的所有者”,這時在另外一個程序中要進行粘貼的話,就向當前選擇的所有者發請求,請求獲取數據。然后所有者就給請求者發送數據。其中的過程可以認為是進程間通訊。

先說剪貼板選擇,其用于菜單的拷貝、粘貼、剪切選項,看上去跟 Windows 的拷貝粘貼方式是一模一樣的,只是選擇了以后,點擊了拷貝(或者快捷鍵也可以),這時候要聲明所有權,然后在內部保存一份需要拷貝的東西。當別的程序粘貼的時候,把保存的東西發送過去。

主選擇略微有點不同,當你選擇任何東西的時候(鼠標或者鍵盤),當前程序就聲明所有權(不需要明確進行拷貝),并保存一份。當別的程序用鼠標中鍵(或者左右同時雙擊來模擬)進行粘貼的時候,把數據發送過去。

所以總結一下,X 內部的實現方式,對于一個程序:

使用鼠標或者鍵盤選擇一段文本:聲明主選擇(Primary)所有權(可能內部也要保存一份)

拷貝(菜單或者快捷鍵):內部保存一份,聲明剪貼板(Clipboard)所有權

粘貼(菜單或者快捷鍵):獲取剪貼板中的數據,并插入到適當的位置

鼠標中鍵(或者雙鍵模擬):獲取主選擇的數據,并插入到適當的位置

另一個程序請求主選擇數據:把內部保存的主選擇發送出去

另一個程序請求剪貼板數據:把保存的剪貼板數據發送出去

另一個程序聲明主選擇所有權:丟棄保存的主選擇數據

另一個程序聲明剪貼板所有權:丟棄保存的剪貼板數據

這只是一個比較簡單的描述,實際上的實現要更復雜一些,具體請參考 [ICCCM] 的文檔。

X 上絕大部分程序都是支持主選擇的,也可以認為缺省就是支持的。有一些對剪貼板的支持不夠明顯,沒有菜單或者快捷鍵之類的,只能用鼠標進行選擇,比如多數的 Terminal Emulator,但提供了快捷鍵。xterm/rxvt/urxvt/mrxvt 等可以使用“Shift + 鼠標中鍵”從剪貼板拷貝。Emacs 使用主選擇。更多的程序用的是剪貼板。

總結

以上是生活随笔為你收集整理的linux剪贴板复制文件原理,linux剪贴板原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。