你也有C-tag,所以讓我建議你自己去做xdpyinfo
。下面的C程序打印只是擴展:
#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int compare(const void *a, const void *b)
{
return strcmp(*(char **) a, *(char **) b);
}
static void print_extension_info(Display * dpy)
{
int n = 0, i;
char **extlist = XListExtensions(dpy, &n);
printf("number of extensions: %d\n", n);
if (extlist) {
qsort(extlist, n, sizeof(char *), compare);
for (i = 0; i < n; i++) {
printf(" %s\n", extlist[i]);
}
}
// TODO: it might not be a good idea to free extlist, check
}
int main()
{
Display *dpy;
char *displayname = NULL;
dpy = XOpenDisplay(displayname);
if (!dpy) {
fprintf(stderr, "Unable to open display \"%s\".\n",
XDisplayName(displayname));
exit(EXIT_FAILURE);
}
print_extension_info(dpy);
XCloseDisplay(dpy);
exit(EXIT_SUCCESS);
}
編譯如:GCC
gcc -O3 -g3 -W -Wall -Wextra xdpyinfo1.0.2.c $(pkg-config --cflags --libs x11) -o xdpyinfo1.0.2
(應該給出一個有關未使用的argc警告,但這是無害的)
只要改變printf()
的到你想要的格式。
非常感謝,這看起來讓我獲得了大部分途徑,但是取消辛苦工作成爲替代xdpyinfo的努力是件可恥的事情,但那僅僅是一些printfs。 – hildred
@hildred如果你做得太多,會讓你感到頭疼,如果你也做得太過分了...... *嘆*這個小程序列出了擴展名。你想讓我擴大它接受命令行的查詢,或者你可以自己做嗎? – deamentiaemundi
不,我的c沒有那麼糟糕,我可以從這裏拿它,這是我生鏽的X11的東西。我很快就會在github上發佈它。你對gpl3許可證有什麼看法? – hildred