Fonts 是否加载合法的X11字体?

Fonts 是否加载合法的X11字体?,fonts,x11,Fonts,X11,我正在学习一点X11编程,并对XLoadFont进行了一些修改。以下代码在一台计算机上工作,但在另一台计算机上不工作。然而,从我能找到的所有文件来看,这似乎是合法的。如果我对某些事情感到困惑,请告诉我: // fail.c #include <X11/Xlib.h> int main(int argc, char** argv) { Font f; Display* disp; XFontStruct* f1; disp = XOpenDispla

我正在学习一点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;
}

如果我理解正确,“*”的XLoadFont应该只返回找到的任何字体。然而,在我试过的三台计算机中,有两台失败了。请注意。

我的发行版(gentoo)安装了一些错误的font.alias文件,这些文件的顶部有以下行:

! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $
这导致(我假设)将“!”与“*”匹配,然后尝试将行的其余部分作为字体加载,这显然不是字体名称。杀了这条线,一切都正常了

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