合法的X11加载字体?

时间:2014-08-30 01:13:44

标签: fonts x11

我正在学习X11编程,并且有点乱用XLoadFont。以下代码适用于一台计算机但不适用于另一台计算机。但是,从我可以发现的所有文档看来,它似乎是合法的。如果我对某事感到困惑,请告诉我:

// fail.c
#include <X11/Xlib.h>

int main(int argc, char** argv) {
    Font f;
    Display* disp;
    XFontStruct* f1;

    disp = XOpenDisplay("");

    f = XLoadFont(disp, "*");
    f1 = XQueryFont(disp, f);
    XFreeFont(disp, f1);

    return 0;
}

当然编译为:

gcc -o fail fail.c -lX11

如果我理解正确,那么&#34; *&#34;的XLoadFont应该只返回找到的任何字体。然而,在我尝试过的三台计算机中的两台上,它失败了。请指教。

1 个答案:

答案 0 :(得分:1)

事实证明我的发行版(gentoo)安装了一些在上面有以下行的bad.alias文件:

! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $

这个结果(我假设)匹配“!”到“*”,然后尝试将该行的其余部分加载为字体,这显然不是字体名称。杀了这条线,现在一切正常。