Как можно проверить, доступен ли сервер X11?

У меня есть программа, которая может отображать данные графически, используя freeglut, что приятно, но не обязательно. я использую putty много для редактирования и компиляции моей программы на debian сервер дома, но когда я пытаюсь запустить бинарный файл изнутри putty Я получаю это сообщение:

freeglut (./a.out): не удалось открыть дисплей ''

Теперь я знаю, что, потратив немного времени, я мог бы заставить Cygwin каким-то образом туннелировать X-сервер, используя ssh -X, но я хотел бы просто определить, может ли freeglut отображаться на экране, а если нет, просто не беспокоиться.

Как я могу это сделать? Я попытался запустить трассировку на моей программе в gdb но нет стека, поэтому я не знаю, есть ли исключение или возвращаемое значение, которое я могу поймать.

1 ответ

Решение

glutInit():

glutInit инициализирует библиотеку GLUT и согласовывает сеанс с оконной системой.Во время этого процесса glutInit может вызвать завершение программы GLUT с сообщением об ошибке пользователю, если GLUT не может быть должным образом инициализирован.Примеры этой ситуации включают в себя сбой подключения к оконной системе, отсутствие поддержки оконной системы для OpenGL и неверные параметры командной строки.

Так что нет, вы не можете справиться с отсутствующим X-сервером с помощью GLUT. За исключением некоторых неприятных хаков, таких как родительский сторожевой процесс или перехват exit() как-то.

Другие вопросы по тегам