我目前正在尝试使用libx11截图
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdio.h>
int main(void) {
XImage* pic;
Display* dpl;
unsigned int buffer_size;
dpl = XOpenDisplay("127.0.0.1:0.0");
pic = XGetImage(dpl, RootWindow(dpl, DefaultScreen(dpl)), 10, 10, 201, 201,
AllPlanes, ZPixmap);
}如果我使用-lX11编译代码并运行它,我总是得到一个分段错误。有什么想法吗?
提前感谢!
发布于 2012-04-24 01:03:01
X11服务器通常不侦听TCP/IP本地主机,而是侦听Unix套接字。无论如何,您都不应该对X11服务器的地址进行硬编码。试试这个:
dpl = XOpenDisplay(NULL);
assert(dpl);发布于 2012-04-24 01:06:10
您应该检查dpl是否为空。
我有根据的猜测是,ip不起作用。大多数发行版都不允许通过tcp套接字访问xserver,所以我猜您必须启用它们(它们是用禁用的)。
https://stackoverflow.com/questions/10284858
复制相似问题