我有以下代码
bool isValidDisplay() {
if (!XOpenDisplay(NULL)) {
return false;
}
return true;
}
据我了解XOpenDisplay正在分配资源,上面代码中释放资源的正确方法是什么。调用XCloseDisplay是否可以解决目的。
是的,调用 XCloseDisplay 会释放成功 XOpenDisplay 的结果。
我猜这就是您想要的,立即释放资源。
bool isValidDisplay() {
Display *d;
if (!(d = XOpenDisplay(NULL))) {
return false;
}
XCloseDisplay(d);
return true;
}
来源:
$ man XOpenDisplay
当我在一段时间后多次调用此函数时,控制台出口处显示消息“已达到最大客户端数”,并且我无法启动单个终端或运行任何应用程序。