微信,QQ,飞书,钉钉等常用社交软件电脑版默认会把Enter设置为“发送”快捷键,我是很反对的。

上个月有同事在群里问如何获取一个转瞬即逝的进程的全路径,显然查/proc/$pid/cmdline的话怕是手速不够快,由于迄至5.x版本的Linux内核API已经足够丰富,以至于已经天然支持了获取全路径的API,即 get_cmdline

我快速在我自己的虚拟机里进行尝试:

#!/usr/bin/stap -g%{#include <linux/skbuff.h>
#include <linux/tcp.h>
#include <linux/mm.h>
#include <net/tcp.h>int (*ptr)(struct task_struct *task, char *buffer, int buflen);
%}function dump(skk:long)
%{struct sock *sk = (struct sock *)STAP_ARG_skk;struct tcp_sock *tp = tcp_sk(sk);struct inet_sock *inet = inet_sk(sk);struct task_struct *curr = current;char buf[128];ptr = (void *)0xffffffffb6802d90;if (ntohs(inet->inet_dport)  == 80) {ptr(curr, buf, 128);STAP_PRINTF("%s %s  %d\n", curr->comm, buf, curr->pid);}
%}probe kernel.function("tcp_connect")
{dump($sk);
}

其中0xffffffffb6802d90这个地址是我在/proc/kallsyms里查到的。

上面的脚本完美打印出了全路径,我迫不及待得将这个发到群里,希望能够提供帮助。于是我复制粘贴了上面的脚本,一个Enter拍下去就发出了,后面我紧接着准备发送一句提示:

0xffffffffb6802d90这个地址你自己从/proc/kallsyms里找,就是get_cmdline的地址。cat /proc/kallsyms |grep get_cmdline 获取。

然而还没等我这句话发出,上面脚本已经被执行,机器已经panic了…这一切都怪Enter键。

换句话说, Enter键作为发送快捷键让人们聊天的内容大部分都不再具有原子性。 为了用Enter发送消息,有时候发送多段消息又怕不小心敲下Enter的时候,你不得不做类似的事情:

请注意,我下面的消息可能会分段发出,只有看到“发完了”的时候,才表示我发完了。。。或者就是如果我还没有发完,我就必须在每条消息后,Enter键拍下前加一句“我还没说完”。。。

而Enter键是很容易误碰的。对于程序员而言,除了空格之外的第二吧。

将Enter键作为默认的发送快捷键只能让消息发送更快更便捷,却很容易带来误解,有时候你话说一半就不小心发出去了。

这种问题在音视频通信中很常见,比如打电话,句子是一句一句断句的,你总不能每次都加一句我还没说完吧。所以一般重要场合,音频通话是要加锁的,比如一些军事行动,说话必须听到“完毕”才能整体理解,否则就接着听。

最后给一个有用的代码,获取绝对路径最简单的方法:

// curr 就是 current ,也就是一个task_struct
name = kstrdup_quotable_file(curr->mm->exe_file, GFP_KERNEL);

浙江温州皮鞋湿,下雨进水不会胖。

我为什么反对把Enter作为发送快捷键相关推荐

  1. alt在计算机中代表什么,计算机中alt+enter是什么快捷键

    计算机中alt+enter是什么快捷键 发布时间:2021-02-24 13:54:12 来源:亿速云 阅读:133 作者:小新 这篇文章将为大家详细讲解有关计算机中alt+enter是什么快捷键,小 ...

  2. win32 python查找文字指定格式 win32com 定位word开始结束 相当于发送快捷键

    from win32com.client import Dispatch word_path = r'D:\KKCap\1.docx'app = Dispatch("Word.Applica ...

  3. 模拟键盘按键、鼠标单击功能发布(可发送快捷键、热键、鼠标左键多次单击)—— 定时执行专家

    目录 ◆ 定时执行专家 -- 模拟键盘按键 ◆ 定时执行专家 -- 模拟鼠标单击 ◆ 定时执行专家 -- 模拟键盘按键 - 设置方法 (1)点击 "定时执行专家" 工具栏 &quo ...

  4. Vue使用Alt + Enter键替代Enter键回车,enter发送消息

    因为要做一个聊天输入框,所以遇到了这个问题,因为发送消息比回车换行要常用,所以用enter键发送消息,alt+enter键回车换行 首先先给文本输入框加两个键盘事件 <textarea v-mo ...

  5. SecureCRT学习之道:SecureCRT经常使用快捷键设置与字体设置方法

    1:假设不想每次登陆都输入password,能够在你打开的session里邮件session option->login action 选中automate logon 双击ogin 和assw ...

  6. 使用Python实现微信发送文本消息、图片以及附件

    使用Python实现微信发送文本消息.图片以及附件 因为目前很多微信账号已经不支持网页版的操作了,因此无法使用之前的itchat这一类对微信进行操作. 为此,选择对微信PC端进行开发. 选择的方式比较 ...

  7. win7 最常用的快捷键 ( 完全可以使用键盘来操作)

    win7 最常用的快捷键 ( 完全可以使用键盘来操作) F1  键  (用来使用帮助文档的) win (开始菜单) win+E ( 打开计算机窗口) win+TAB   (切换窗口应用,     有时 ...

  8. 自动祝福程序(定时发送消息)

    有个同学找我帮忙:明天是她朋友的生日,但她没时间发送祝福,问我能不能弄个自动发送.我想,QQ并没有内置的定时发送功能,紧接着又想起了QQ刷屏助手(见我以前的博文)便用Python实现了她提出的需求. ...

  9. autohotkey windows画板 Mspaint 快捷键

    输出效果 代码图 Mspaint.ahk ;热键标记 ; !感叹号代表Alt键 ; # 井号代表 Windows 键 ; ^ 上三角号代表 Ctrl键 ; + 加号代表 Shift 键 ; 执行 ; ...

最新文章

  1. torch nll_loss
  2. 【C 语言】文件操作 ( 写文本文件 | Qt 创建 C 语言命令行项目 )
  3. Android UI(继承控件)--PopupWindow设置动画
  4. HDU SPFA算法 Invitation Cards
  5. 初识面向对象(理论1)
  6. oracle修改表字段约束条件,Oracle创建表、修改表、删除表、约束条件语法
  7. 使用Webbrowser的一点心得体会
  8. setpairint,int 的用法
  9. 机器学习-决策树--基础知识总结
  10. python自动填表程序_Python的PAMIE IE自动化测试填表提交工具
  11. App中自动生成二维码
  12. 参考文献的序号怎么对齐_word参考文献怎么对齐
  13. 电子计算机的核心部件是哪三个,电子计算机三大核心部件 是什么
  14. 服务器80端口找不到,如何查询服务器80端口被关闭
  15. 大型在线实时应用解决方案
  16. android avm灰色,APICloud AVM多端开发案例深度解析(上)--点餐app开发
  17. 用python监控A股股票波动并发送预警邮件_V3
  18. 《大学“电路分析基础”课程实验合集.实验五》丨线性有源二端网络等效电路的研究
  19. 前端学习笔记(js基础知识)
  20. 微信小程序的登录过程简介

热门文章

  1. 关于终身成长的几点感想
  2. 使用vs2019创建win32动态链接库
  3. LeetCode 221. 最大正方形
  4. 数据结构与算法_02_局部最优的贪心算法
  5. 7-3 DAG图优化 (15 分)
  6. 谷实生物终止创业板上市:猪饲料收入占七成,殷学中家族控股公司
  7. 浅谈百度地图的简单开发再续前缘之公交,地铁路线检索查询(六)
  8. 运行nrm包 nrm ls 时报错无法查询到可选择的镜像源地址的问题及解决方法
  9. 【C刷题记录】地月折纸——对数使用
  10. 【MySQL】MyCat分库分表分片规则配置详解与实战(MySQL专栏启动)