Нейл Мэтью - Основы программирования в Linux

Здесь есть возможность читать онлайн «Нейл Мэтью - Основы программирования в Linux» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2009, ISBN: 2009, Издательство: «БХВ-Петербург», Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Основы программирования в Linux: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Основы программирования в Linux»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым.
Для начинающих Linux-программистов

Основы программирования в Linux — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Основы программирования в Linux», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Применение характеристик terminfo

Теперь, когда вы знаете, как определить характеристики терминала, нужно научиться обращаться к ним. Когда используется terminfo, прежде всего вам нужно задать тип терминала, вызвав функцию setupterm. Она инициализирует структуру TERMINALдля текущего типа терминала. После этого вы сможете запрашивать характеристики терминала и применять его функциональные возможности. Делается это с помощью вызова setupterm, подобного приведенному далее:

#include

int setupterm(char *term, int fd, int *errret);

Библиотечная функция setuptermзадает текущий тип терминала в соответствии с заданным параметром term. Если term— пустой указатель, применяется переменная окружения TERM. Открытый дескриптор файла, предназначенный для записи на терминал, должен передаваться в параметре fd. Результат функции хранится в целой переменной, на которую указывает errret, если это не пустой указатель. Могут быть записаны следующие значения:

□ -1 — нет базы данных terminfo;

□ 0 — нет совпадающего элемента в базе данных terminfo;

□ 1 — успешное завершение.

Функция setuptermвозвращает константу OKв случае успешного завершения и ERRв случае сбоя. Если на параметр errretустановлен как пустой указатель, setuptermвыведет диагностическое сообщение и завершит программу в случае своего аварийного завершения, как в следующем примере:

#include

#include

#include

#include

int main() {

setupterm("unlisted", fileno(stdout), (int *)0);

printf("Done.\n");

exit(0);

}

Результат выполнения этой программы в вашей системе может не быть точной копией приведенного далее, но его смысл будет вполне понятен. " Done." не выводится, поскольку функция setuptermпосле своего аварийного завершения вызвала завершение программы:

$ cc -о badterm badterm.с -lncurses

$ ./badterm

'unlisted': unknown terminal type.

$

Обратите внимание на строку компиляции в примере: в этой системе Linux мы используем реализацию ncurses библиотеки curses со стандартным заголовочным файлом, находящимся в стандартном каталоге. В таких системах вы можете просто включить файл curses.h и задать -lncursesдля библиотеки.

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

#include

int tigetflag(char *capname);

int tigetnum(char *capname);

char *tigetstr(char *capname);

Функции tigetflag, tigetnumи tigetstrвозвращают значения характеристик terminfo булева или логического, числового и строкового типов соответственно. В случае сбоя (например, характеристика не представлена) tigetflagвернет -1, tigetnum — -2, a tigetstr— (char*)-1.

Вы можете применять базу данных terminfo для определения размера экрана терминала, извлекая характеристики colsи linesс помощью следующей программы sizeterm.c:

#include

#include

#include

#include

int main() {

int nrows, ncolumns;

setupterm(NULL, fileno(stdout), (int *)0);

nrows = tigetnum("lines");

ncolumns = tigetnum("cols");

printf("This terminal has %d columns and %d rows\n", ncolumns, nrows);

exit(0);

}

$ echo $TERM

vt100

$ ./sizeterm

This terminal has 80 columns and 24 rows

Если запустить эту программу в окне рабочей станции, вы получите результат, отражающий размер текущего окна:

$ echo $TERM

xterm

$ ./sizeterm

This terminal has 88 columns and 40 rows

$

Если применить функцию tigetstrдля получения характеристики перемещения курсора ( cup) терминала типа xterm, вы получите параметризованный ответ: \Е[%p1%d;%p2%dH.

Этой характеристике требуются два параметра: номер строки и номер столбца, в которые перемещается курсор. Обе координаты измеряются, начиная от нулевого значения в левом верхнем углу экрана.

Вы можете заменить параметры в характеристике реальными значениями с помощью функции tparm. До девяти параметров можно заменить значениями и получить в результате применяемую escape-последовательность символов.

#include

char *tparm(char *cap, long p1, long p2, ..., long p9);

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Основы программирования в Linux»

Представляем Вашему вниманию похожие книги на «Основы программирования в Linux» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Основы программирования в Linux»

Обсуждение, отзывы о книге «Основы программирования в Linux» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.