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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發(fā)布時(shí)間:2024/4/17 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux剪贴板复制文件原理,linux剪贴板原理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

X window system中支持任意的selection.

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

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

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

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

所以總結(jié)一下,X 內(nèi)部的實(shí)現(xiàn)方式,對于一個(gè)程序:

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

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

粘貼(菜單或者快捷鍵):獲取剪貼板中的數(shù)據(jù),并插入到適當(dāng)?shù)奈恢?/p>

鼠標(biāo)中鍵(或者雙鍵模擬):獲取主選擇的數(shù)據(jù),并插入到適當(dāng)?shù)奈恢?/p>

另一個(gè)程序請求主選擇數(shù)據(jù):把內(nèi)部保存的主選擇發(fā)送出去

另一個(gè)程序請求剪貼板數(shù)據(jù):把保存的剪貼板數(shù)據(jù)發(fā)送出去

另一個(gè)程序聲明主選擇所有權(quán):丟棄保存的主選擇數(shù)據(jù)

另一個(gè)程序聲明剪貼板所有權(quán):丟棄保存的剪貼板數(shù)據(jù)

這只是一個(gè)比較簡單的描述,實(shí)際上的實(shí)現(xiàn)要更復(fù)雜一些,具體請參考 [ICCCM] 的文檔。

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。