Используйте Источник, Люк.
while (1) {
XNextEvent(d, &e);
if (e.type == Expose) {
XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
XDrawString(d, w, DefaultGC(d, s), 10, 50, msg, strlen(msg));
}
if (e.type == KeyPress)
break;
}
XCloseDisplay(d);
Если вы выходите из цикла нажатием клавиши, вы вызываете XCloseDisplay ().Если вы убьете окно «извне» (скажем, с помощью мыши), эта функция никогда не будет вызвана.Процесс внезапно завершается, и X предупреждает вас об этом.
По крайней мере, в моей системе kill (1) также не выдает предупреждение.Я подозреваю, что есть какое-то взаимодействие с вашим оконным менеджером, с чем вы будете иметь дело позже в своем xlib-образовании.:-)