Xlib (X library — бібліотека X) — програмна бібліотека функцій клієнта системи X Window, написана на мові Сі. Містить функції для взаємодії з так званим X-сервером. Бібліотека дозволяє використовувати вищий рівень абстракції, без знання деталей роботи основного протоколу системи X Window.
![]() | |
Тип | бібліотека |
---|---|
Розробник | X.Org Foundation |
Перший випуск | ~1985 |
Операційна система | GNU/Linux[d] і BSD[d] |
Мова програмування | C |
Ліцензія | d[1], d[1] і d[1] |
Онлайн-документація | x.org/releases/current/doc/libX11/libX11/libX11.html |
Репозиторій | gitlab.freedesktop.org/xorg/lib/libx11 |
Вебсайт | www.x.org/docs/X11/xlib.pdf |
|
![image](https://www.wikidata.uk-ua.nina.az/image/aHR0cHM6Ly93d3cud2lraWRhdGEudWstdWEubmluYS5hei9pbWFnZS9hSFIwY0hNNkx5OTFjR3h2WVdRdWQybHJhVzFsWkdsaExtOXlaeTkzYVd0cGNHVmthV0V2WTI5dGJXOXVjeTkwYUhWdFlpODFMelUzTDFndFkyeHBaVzUwTFd4cFluSmhjbWxsY3k1emRtY3ZNakl3Y0hndFdDMWpiR2xsYm5RdGJHbGljbUZ5YVdWekxuTjJaeTV3Ym1jPS5wbmc=.png)
Деякі користувацькі програми використовують Xlib безпосередньо (наприклад, Opera), інші використовують спеціальні інструментарії «віджетів» — «надбудови» над базовою бібліотекою Xlib:
Бібліотека Xlib з'явилася близько 1985 року і натепер використовується як основа і як основний графічний інтерфейс користувача в багатьох Юнікс-подібних операційних системах.
Як альтернативу можна відзначити бібліотеку , спробу розробки заміни Xlib.
Функції XLib
Функції XLib можуть бути згруповані в декілька категорій:
- Операції управління з'єднанням з X сервером, такі як XOpenDisplay, XCloseDisplay
- Запити X серверу, такі як XCreateWindow, XCreateSimpleWindow, XCreateGC, XCreateColomap
- Операції клієнтської частини, такі як управління подіями: XNextEvent, або операції з локальними даними XCreateImage
Приклад програми
Наступний приклад програми встановлює з'єднання з X сервером і виводить на екран вікно з привітанням:
/* Компілюється таким рядком: cc test.c -o test -lX11 */ #include <X11/Xlib.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> extern int errno; int main (void) { Display *d; Window w; XEvent e; char *msg = "Hello, World!"; int s; /* З'єднатися з X сервером, якщо X сервер на віддаленій машині * слід дозволити на машині, де запущений X Server * віддалені з'єднання командою xhost+ (дивись man xhost) */ if ((d = XOpenDisplay(getenv("DISPLAY"))) == NULL) { printf ("Can't connect X server: %s\n", strerror (errno)); exit (1); } s = DefaultScreen (d); /* Створити вікно */ w = XCreateSimpleWindow (d, RootWindow (d, s), 10, 10, 200, 200, 1, BlackPixel (d, s), WhitePixel (d, s)); /* На які події будемо реагувати */ XSelectInput (d, w, ExposureMask | KeyPressMask); /* Вивести вікно на екран */ XMapWindow (d, w); /* Нескінчний цикл обробки подій */ 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), 50, 50, msg, strlen (msg)); } /* При натисканні кнопки-вихід */ if (e.type == KeyPress) break; } /* Закрити з'єднання з X сервером */ XCloseDisplay(d); return 0; }
Клієнт (програма) створює з'єднання з X сервером функцією XOpenDisplay, в яку передається вказівник на DISPLAY, визначений через змінну середовища виконання. У UNIX це можна зробити командою export DISPLAY = ".0:0". Як змінну DISPLAY можна вказати і віддалену машину з запущеним X сервером. Функція (макрос) DefaultScreen вибирає поточний екран (в X Window може бути декілька екранів), XCreateSimpleWindow створює вікно, а XSelectInput визначає події, на які вікно має реагувати. XMapWindow виводить вікно на екран, а XNextEvent вибирає з черги подію, яку вище було визначено. При подію Expose у вікні малюється прямокутник і виводиться рядок "Hello World!". При натисканні клавіші на клавіатурі програма завершує роботу.
Посилання
- (англ.) Керівництво з програмування з бібліотекою Xlib
- (англ.) Список функцій бібліотеки Xlib [Архівовано 1 квітня 2021 у Wayback Machine.]
- (англ.) Kenton Lee's pages on X Window and Motif [Архівовано 20 травня 2013 у Wayback Machine.]
- (англ.) Підручник Xlib [Архівовано 16 березня 2012 у Wayback Machine.]
- (англ.) Докладний навчальний курс Xlib
- (англ.) Використання Xlib для створення скрінсейвера [Архівовано 19 березня 2012 у Wayback Machine.]
- (рос.) Xlib - интерфейс с X Window на мові C
- (рос.) Програмування з Xlib на C++
- (рос.) Програмування в середовищі X Window на основі бібліотеки Xlib [Архівовано 4 січня 2012 у Wayback Machine.]
- https://gitlab.freedesktop.org/xorg/lib/libx11/-/blob/master/COPYING
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Xlib X library biblioteka X programna biblioteka funkcij kliyenta sistemi X Window napisana na movi Si Mistit funkciyi dlya vzayemodiyi z tak zvanim X serverom Biblioteka dozvolyaye vikoristovuvati vishij riven abstrakciyi bez znannya detalej roboti osnovnogo protokolu sistemi X Window XlibTipbibliotekaRozrobnikX Org FoundationPershij vipusk 1985Operacijna sistemaGNU Linux d i BSD d Mova programuvannyaCLicenziyad 1 d 1 i d 1 Onlajn dokumentaciyax org releases current doc libX11 libX11 libX11 htmlRepozitorijgitlab freedesktop org xorg lib libx11Vebsajtwww x org docs X11 xlib pdf Mediafajli u Vikishovishi Xlib i inshi biblioteki sho yiyi vikoristovuyut Deyaki koristuvacki programi vikoristovuyut Xlib bezposeredno napriklad Opera inshi vikoristovuyut specialni instrumentariyi vidzhetiv nadbudovi nad bazovoyu bibliotekoyu Xlib Vbudovani zasobi Xt Nabir vidzhetiv Athena Xaw Motif GTK Qt versiya dlya X11 wxWidgets Biblioteka Xlib z yavilasya blizko 1985 roku i nateper vikoristovuyetsya yak osnova i yak osnovnij grafichnij interfejs koristuvacha v bagatoh Yuniks podibnih operacijnih sistemah Yak alternativu mozhna vidznachiti biblioteku sprobu rozrobki zamini Xlib Funkciyi XLibFunkciyi XLib mozhut buti zgrupovani v dekilka kategorij Operaciyi upravlinnya z yednannyam z X serverom taki yak XOpenDisplay XCloseDisplay Zapiti X serveru taki yak XCreateWindow XCreateSimpleWindow XCreateGC XCreateColomap Operaciyi kliyentskoyi chastini taki yak upravlinnya podiyami XNextEvent abo operaciyi z lokalnimi danimi XCreateImagePriklad programiNastupnij priklad programi vstanovlyuye z yednannya z X serverom i vivodit na ekran vikno z privitannyam Kompilyuyetsya takim ryadkom cc test c o test lX11 include lt X11 Xlib h gt include lt stdio h gt include lt stdlib h gt include lt string h gt include lt errno h gt extern int errno int main void Display d Window w XEvent e char msg Hello World int s Z yednatisya z X serverom yaksho X server na viddalenij mashini slid dozvoliti na mashini de zapushenij X Server viddaleni z yednannya komandoyu xhost divis man xhost if d XOpenDisplay getenv DISPLAY NULL printf Can t connect X server s n strerror errno exit 1 s DefaultScreen d Stvoriti vikno w XCreateSimpleWindow d RootWindow d s 10 10 200 200 1 BlackPixel d s WhitePixel d s Na yaki podiyi budemo reaguvati XSelectInput d w ExposureMask KeyPressMask Vivesti vikno na ekran XMapWindow d w Neskinchnij cikl obrobki podij while 1 XNextEvent d amp e Pererisuvati vikno if e type Expose XFillRectangle d w DefaultGC d s 20 20 10 10 XDrawString d w DefaultGC d s 50 50 msg strlen msg Pri natiskanni knopki vihid if e type KeyPress break Zakriti z yednannya z X serverom XCloseDisplay d return 0 Kliyent programa stvoryuye z yednannya z X serverom funkciyeyu XOpenDisplay v yaku peredayetsya vkazivnik na DISPLAY viznachenij cherez zminnu seredovisha vikonannya U UNIX ce mozhna zrobiti komandoyu export DISPLAY 0 0 Yak zminnu DISPLAY mozhna vkazati i viddalenu mashinu z zapushenim X serverom Funkciya makros DefaultScreen vibiraye potochnij ekran v X Window mozhe buti dekilka ekraniv XCreateSimpleWindow stvoryuye vikno a XSelectInput viznachaye podiyi na yaki vikno maye reaguvati XMapWindow vivodit vikno na ekran a XNextEvent vibiraye z chergi podiyu yaku vishe bulo viznacheno Pri podiyu Expose u vikni malyuyetsya pryamokutnik i vivoditsya ryadok Hello World Pri natiskanni klavishi na klaviaturi programa zavershuye robotu Posilannya angl Kerivnictvo z programuvannya z bibliotekoyu Xlib angl Spisok funkcij biblioteki Xlib Arhivovano 1 kvitnya 2021 u Wayback Machine angl Kenton Lee s pages on X Window and Motif Arhivovano 20 travnya 2013 u Wayback Machine angl Pidruchnik Xlib Arhivovano 16 bereznya 2012 u Wayback Machine angl Dokladnij navchalnij kurs Xlib angl Vikoristannya Xlib dlya stvorennya skrinsejvera Arhivovano 19 bereznya 2012 u Wayback Machine ros Xlib interfejs s X Window na movi C ros Programuvannya z Xlib na C ros Programuvannya v seredovishi X Window na osnovi biblioteki Xlib Arhivovano 4 sichnya 2012 u Wayback Machine https gitlab freedesktop org xorg lib libx11 blob master COPYING