Windows下复制粘贴的进程间通信模型——共享内存

Windows下复制粘贴的进程间通信模型——共享内存

最近在学习操作系统时遇到的一道思考题:Windows下复制粘贴操作属于哪种进程间通信方式?出于直觉,那必然是共享内存的方式,但是苦于没有直接的证据,一通搜索之后没有答案?最后还是在StackOverflow上找到了答案,最后还是在StackOverflow上有所收获。

附上讨论的链接https://stackoverflow.com/questions/52887507/how-is-copy-paste-possible/53177697#53177697

但是苦于没有搜索到中文的有关文档,在此记录一下

关于进程通信的内容这里就不多加叙述了,相关的博客很多

复制粘贴(copy-paste)——进程间通信IPC

大名鼎鼎的Ctrl-C,Ctrl-V操作显然是属于进程间通信(inter-process communication)的,思考以下场景:

你在浏览器上翻译了你需要的英文单词,需要把中文拷贝至Word当中

显然浏览器和Word是运行在你的主机上的两个进程,文本复制也就是进程间通信咯。

复制粘贴(copy-paste)——基于共享内存的IPC

Windows下的复制粘贴采用Clipboard实现,属于共享内存的通信方式

具体可以参考https://docs.microsoft.com/en-us/windows/win32/dataxchg/clipboard(微软官方的文档,瞬间就觉得靠谱了

在https://docs.microsoft.com/en-us/windows/win32/dataxchg/clipboard-operations中描述了Copy和Paste操作的实现方法

  • Copy Operations设置Clipboard的内容并并指定全局共享内存中的句柄。

copy

  • 而Paste Operation是获取了全局共享内存中的数据对象

paste

总结

官方文档属实靠谱🐶

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值