帮助:达到最大客户端数 - 分段错误

2023-12-20

我想模拟很多按键事件。我通过使用找到了解决方案XTestFakeKeyEvent,但是当我模拟超过 210 次时,我的程序会引发“已达到最大客户端数”分段错误。我不知道如何解决这个问题。

我的代码在这里:

#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
#include <stdio.h>

#define PRESS_UP    0
#define PRESS_DOWN  1
#define PRESS_LEFT  2
#define PRESS_RIGHT 3
#define PRESS_ENTER 4
#define PRESS_ESC   5
#define PRESS_HOME  6

 Display *display;
 unsigned int keycode;

 int press(int key){
    display = XOpenDisplay(NULL);

    if(key == PRESS_UP)
        keycode = XKeysymToKeycode(display, XK_Up);
    else if(key == PRESS_DOWN)
        keycode = XKeysymToKeycode(display, XK_Down);
    else if(key == PRESS_LEFT)
        keycode = XKeysymToKeycode(display, XK_Left);
    else if(key == PRESS_RIGHT)
        keycode = XKeysymToKeycode(display, XK_Right);
    else if(key == PRESS_ENTER)
        keycode = XKeysymToKeycode(display, XK_Return);
    else if(key == PRESS_ESC)
        keycode = XKeysymToKeycode(display, XK_Escape);
    else if(key == PRESS_HOME)
        keycode = XKeysymToKeycode(display, XK_Home);

    XTestFakeKeyEvent(display, keycode, True, 0);
    XTestFakeKeyEvent(display, keycode, False, 0);
    XFlush(display);
    return 0;
}

int main(int argc, char *argv[]){
    int count = 0;
    while (count < 500){
        press(PRESS_UP);
        printf("count =%d\n" ,count);
        count ++;
    }
}

Output :

$ gcc -lXtst -lX11 Util_KeyPressSimulator.c 
$ ./a.out 
count =0
^[[Acount =1
^[[Acount =2
...
^[[Acount =208
^[[Acount =209
^[[Acount =210
^[[AMaximum number of clients reachedSegmentation fault

有哪位高手帮忙一下吗,谢谢。


你正在做一个XOpenDisplay每次迭代没有匹配XCloseDisplay。考虑打开显示屏一次,main(),在循环之外,并在退出之前将其关闭。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

帮助:达到最大客户端数 - 分段错误 的相关文章

随机推荐

  • 第二个窗口首先运行如何停止它

    当我运行 python 文件kill app 时 它运行第一个第二个 python 文件 Hb test py 然后在 tkinter 上运行第一个 python 我正在使用 vs code python 版本是 3 10 看下面的代码 f
  • asp.net MVC5 - 依赖注入和 AuthorizeAttribute

    我花了很长时间寻找解决我的问题的方法 我有一个自定义的 AuthorizeAttribute 它需要依赖于可以访问 DbContext 的 服务 遗憾的是 依赖注入在自定义 AuthorizeAttribute 中不起作用 并且始终为 nu
  • 使用 jQuery 从右向左滑动 DIV

    我使用 jQuery 代码在加载时从左到右对 div 进行动画处理 然后通过单击关闭按钮 div 从右到左隐藏 它工作正常 只是不是水平地从左到右 而是对角线 我究竟做错了什么 这是我正在使用的代码的示例http jsfiddle net
  • 使用预先配置的作业创建 Jenkins Docker 映像

    我创建了一堆本地部署管道作业 这些作业执行诸如删除现有容器 在本地构建服务 构建 docker 映像 运行容器等操作 这些不是 CI CD 作业 只是用于部署的小型管道开发期间在本地进行 我现在想做的是将其提供给我们所有的开发人员 这样他们
  • 使用 grep 正则表达式匹配任意数量的数字

    我有一个文件 其中的行看起来类似如下 data datalater 983290842 Data387428later datafhj893724897290384later 4329804928later 我想要做的是使用正则表达式来匹配
  • 使用 Postman 将 GUID 列表发布到 MVC 5 控制器

    我正在尝试制作一个控制器方法 public String CreateGasolineBlend List
  • 试图理解为什么在 Haskell 中使用foldr的这个函数不起作用

    所以我是 Haskell 的新手 并使用 WikiBooks 来学习它 在高阶函数章节中 使用了以下示例 echoes foldr x xs gt replicate x x xs 所以我尝试运行它 但它给了我一个错误 如下所示 Ambig
  • Symfony 根据日期计算天数

    我正在尝试根据日期计算 1 21 天的价格 家庭控制器 Sql SELECT DISTINCT a property id a date a minimum stay a maximum stay a quantity a arrival
  • git - 修剪空格

    我不小心加了一些空格我最初的承诺 http github com josh brown euler python commit 5eed0c8874141b87deae35de57589cd38e03dfaa 它显示为红色git diff
  • SQL 排序和连字符

    有没有一种方法可以在 SQL Server 2005 中轻松排序 同时忽略字符串字段中的连字符 目前我必须执行 REPLACE fieldname 或函数来删除排序子句中的连字符 我希望可以在存储过程的顶部设置一个标志或其他东西 Acces
  • 如何在R中选择组内具有特定值的行

    我正在 R 中的循环和函数方面进行自我训练 但目前处于非常基础的水平 对于最近的一项研究 我需要准备如下数据 我有一个数据集 如下所示 dd lt read table text event timeline ys ID year grou
  • 在相同的 pandas 数据上运行相同的脚本会产生略有不同的数据帧浮点值

    我正在执行之前在相同数据上运行过的脚本 我得到的数据帧与前一个数据帧仅略有不同 小数点后第十位左右 例如 在某些列 和行 中 旧数据框包含价格 5673391 88 在新数据帧的同一列和同一行中 该值似乎完全相同 5673391 88 但是
  • 在不同域上工作时,CKFinder“编辑”功能不起作用

    我们正在评估CKFinder 目前我们有这样的情况 app domain com 托管我们的 JS 应用程序 包括 ckfinder js api domain com 托管connector php 请注意 它们位于不同的域中 我们可以毫
  • HTTP/1.1 302 到底是什么意思?

    我曾经读过的一篇文章说这意味着跳转 从一个 URI 到另一个 URI 但我检测到这个 302 即使实际上根本没有跳转 302 重定向意味着页面被暂时移动 而 301 意味着页面被永久移动 301 有利于 SEO 价值 而 302 则不然 因
  • 如何查看Azure fastCGI上的实际错误?

    我在访问 Blob 存储时在 Azure fastCGI 上收到一般服务器错误 错误是 500内部服务器错误 您要查找的资源有问题 无法显示 下面是代码 此代码在本地测试中运行良好 并且作为内容上传到 Azure 的所有文件都运行良好 谁能
  • Admob android 给出错误代码 0

    我在我的 Android 应用程序上设置了 ad mob 遵循完整教程 I added addtestDevice它向我展示了测试广告 但现在为了制作 我需要展示真实的广告并删除了addtestDevice但现在我收到这个错误 导出签名的应
  • 添加“在 Excel 中编辑”或“编辑照片”扩展

    我检查了最新的 iOS 版 Dropbox 和 Excel 在 Dropbox 中 我们有一个编辑按钮 单击后 它会打开 Excel 的扩展名 您可以在其中编辑文件 保存后 更改也会反映在 Dropbox 文件中 我想添加一个这样的按钮 另
  • Python Selenium Chrome 禁用“尝试下载多个文件”的提示

    我目前正在运行一个 Python 自动机 它需要使用 Selenium Chromedriver 在同一会话中下载多个文件 问题是 当浏览器尝试下载第二个文件并读取它时 浏览器将不会下载 直到单击 允许 按钮 我研究了 Selenium 的
  • iOS 打开与地图应用程序的链接

    我正在开发一个活动应用程序 并尝试添加一个 获取路线 按钮 以在 Apple 地图或 Google 地图中打开路线 我现在很高兴使用 Apple 地图 因为它很容易嵌入http maps apple com q XYZ 我的应用程序正在显示
  • 帮助:达到最大客户端数 - 分段错误

    我想模拟很多按键事件 我通过使用找到了解决方案XTestFakeKeyEvent 但是当我模拟超过 210 次时 我的程序会引发 已达到最大客户端数 分段错误 我不知道如何解决这个问题 我的代码在这里 include