如何释放XopenDisplay分配的资源

问题描述 投票:0回答:2

我有以下代码

bool isValidDisplay() {
   if (!XOpenDisplay(NULL)) {
      return false;
   }
   return true;    
 }

据我了解XOpenDisplay正在分配资源,上面代码中释放资源的正确方法是什么。调用XCloseDisplay是否可以解决目的。

c++ xlib
2个回答
2
投票

是的,调用 XCloseDisplay 会释放成功 XOpenDisplay 的结果。

我猜这就是您想要的,立即释放资源。

bool isValidDisplay() {
   Display *d;
   if (!(d = XOpenDisplay(NULL))) {
      return false;
   }
   XCloseDisplay(d);
   return true;    
 }

来源:

$ man XOpenDisplay

0
投票

当我在一段时间后多次调用此函数时,控制台出口处显示消息“已达到最大客户端数”,并且我无法启动单个终端或运行任何应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.