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

Тут можно читать онлайн Нейл Мэтью - Основы программирования в Linux - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-osnet, издательство «БХВ-Петербург», год 2009. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Основы программирования в Linux
  • Автор:
  • Жанр:
  • Издательство:
    «БХВ-Петербург»
  • Год:
    2009
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-9775-0289-4
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Основы программирования в Linux - описание и краткое содержание, автор Нейл Мэтью, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Для начинающих Linux-программистов

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

Основы программирования в Linux - читать книгу онлайн бесплатно, автор Нейл Мэтью
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Функция clrtobotочищает экран, начиная с текущей позиции курсора и далее до конца экрана, а функция clrtoeolочищает экран, начиная с текущей позиции курсора до конца строки, в которой находится курсор.

Перемещение курсора

Для перемещения курсора применяется единственная функция с дополнительной командой, управляющей положением курсора после обновления экрана.

#include

int move(int new_y, int new_x);

int leaveok(WINDOW *window_ptr, bool leave_flag);

Функция moveпросто переносит позицию логического курсора в заданное место на экране. Напоминаем о том, что начало экранных координат (0, 0) находится в левом верхнем углу экрана. В большинстве версий библиотеки curses две глобальные целочисленные переменные, LINESи COLUMNS, определяют размер физического экрана и могут применяться для определения максимально допустимых значений параметров new_yи new_x. Вызов moveсам по себе не приводит к перемещению физического курсора. Он только изменяет позицию на логическом экране, в которой появится следующий вывод. Если вы хотите, чтобы экранный курсор переместился немедленно после вызова функции move, вставьте следом за ним вызов функции refresh.

Функция leaveokустанавливает флаг, управляющий положением курсора на физическом экране после его обновления. По умолчанию флаг равен false, и после вызова refreshаппаратный курсор остается в той же точке экрана, что и логический курсор. Если флаг равен true, аппаратный курсор можно оставить в случайно выбранной точке экрана. Как правило, значение, устанавливаемое по умолчанию, предпочтительней, т.к. курсор остается в не лишенной смысла позиции.

Атрибуты символов

У всех символов, обрабатываемых curses, могут быть определенные атрибуты, управляющие способом отображения символа на экране при условии, что оборудование, применяемое для их отображения, поддерживает требуемый атрибут. Определены следующие атрибуты: A_BLINK, A_BOLD, A_DIM, A_REVERSE, A_STANDOUTи A_UNDERLINE. Вы можете использовать перечисленные далее функции для установки атрибутов по одному или все вместе.

#include

int attron(chtype attribute);

int attroff(chtype attribute);

int attrset(chtype attribute);

int standout(void);

int standend(void);

Функция attrsetустанавливает атрибуты curses, функции attronи attroffвключают и отключают заданные атрибуты, не портя остальные, а функции standoutи standendобеспечивают более выразительный режим выделения или "лучший из всех" режим. На большинстве терминалов выбирается инверсия.

Выполните упражнение 6.2.

Упражнение 6.2. Перемещение, вставка и атрибуты

Теперь, когда вы знаете больше об управлении экраном, можно испытать более сложный пример moveadd.c. Вы включите несколько вызовов функций refreshи sleepв этот пример, чтобы на каждом шаге видеть, как выглядит экран. Обычно программы с использованием библиотеки curses стараются обновлять экран как можно реже, поскольку это не слишком высокопроизводительная операция. Программный код написан с некоторой долей искусственности для обеспечения большей наглядности.

1. Для начала вставьте несколько заголовочных файлов, определите несколько символьных массивов и указатель на них, а затем инициализируйте структуры библиотеки curses:

#include

#include

#include

#include

#include

int main() {

const char witch_one[] = " First Witch ";

const char witch_two[] = " Second Witch ";

const char *scan_ptr;

initscr();

2. Теперь для трех начальных текстовых фрагментов, которые появляются на экране через определенные интервалы, включите и отключите соответствующие флаги атрибутов;

move(5, 15);

attron(A_BOLD);

printw("%s", "Macbeth");

attroff(A_BOLD);

refresh();

sleep(1);

move(8, 15);

attron(A_STANDOUT);

printw("%s", "Thunder and Lightning");

attroff(A_STANDOUT);

refresh();

sleep(1);

move(10, 10);

printw("%s", "When shall we three meet again");

move(11, 23);

printw("%s", "In thunder, lightning, or in rain ?");

move(13, 10);

printw("%s", "When the hurlyburly's done, ");

move(14, 23);

printw("%s", "When the battle's lost and won.");

refresh();

sleep(1);

3. Действующие лица идентифицированы, и их имена выводятся посимвольно:

attron(A_DIM);

scan_ptr = witch_one + strlen(witch_one) - 1;

while (scan_ptr != witch_one) {

move(10, 10);

insch(*scan_ptr--);

}

scan_ptr = witch_two + strlen(witch_two) - 1;

while (scan_ptr != witch_two) {

move(13, 10);

insch(*scan_ptr--);

}

attroff(A_DIM);

refresh();

sleep(1);

4. В заключение переместите курсор в правый нижний угол экрана, а затем подготовьте и выполните завершение:

move(LINES - 1, COLS - 1);

refresh();

sleep(1);

endwin();

exit(EXIT_SUCCESS);

}

Когда вы выполните программу, заключительный экран будет выглядеть так, как показано на рис. 6.3. К сожалению, снимок экрана не дает полного впечатления и не показывает курсор, установленный в правом нижнем углу экрана. Эмулятор xterm может быть более подходящей средой для точного отображения программ, чем обычная консоль.

Рис 63 Как это работает После инициализации некоторых переменных и экрана - фото 13

Рис. 6.3

Как это работает

После инициализации некоторых переменных и экрана с помощью библиотеки curses вы применили функции moveдля перемещения курсора по экрану. Посредством функций attronи attroffвы управляли атрибутами текста, выводимого в заданную точку экрана. Далее перед закрытием библиотеки curses и завершением программа продемонстрировала, как вставлять символы функцией insch.

Клавиатура

Наряду с предоставлением интерфейса, облегчающего управление экраном, библиотека curses также предлагает средства, облегчающие управление клавиатурой.

Режимы клавиатуры

Процедуры считывания с клавиатуры управляются режимами. Режимы устанавливаются с помощью следующих функций:

#include

int echo(void);

int noecho(void);

int cbreak(void);

int nocbreak(void);

int raw(void);

int noraw(void);

Функции echoи noechoпросто включают и отключают отображение символов, набираемых на клавиатуре. Оставшиеся четыре функции управляют тем, как символы, набранные на терминале, становятся доступны программе с применением curses. Для того чтобы понять функцию cbreak, необходимо иметь представление о стандартном режиме ввода. Когда программа, использующая библиотеку curses, стартует с вызова функции initscr, устанавливается режим ввода, называемый режимом с обработкой (cooked mode). Это означает построчную обработку, т.е. ввод становится доступен программе после нажатия пользователем клавиши (или на некоторых клавиатурах). Специальные символы на клавиатуре включены, поэтому набор соответствующих клавиатурных последовательностей может сгенерировать сигнал в программе. Управление потоком, если терминал запускается с терминала, также включено. Вызывая функцию cbreak, программа может установить режим ввода cbreak, в котором символы становятся доступными программе сразу после их набора, а не помещаются в буфер и передаются программе только после нажатия клавиши . Как и в режиме с обработкой, специальные символы клавиатуры действуют, а простые клавиши, например , передаются для обработки непосредственно в программу, поэтому если вы хотите, чтобы нажатие клавиши приводило к привычным действиям, то вы должны запрограммировать их самостоятельно.

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

Интервал:

Закладка:

Сделать


Нейл Мэтью читать все книги автора по порядку

Нейл Мэтью - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Основы программирования в Linux, автор: Нейл Мэтью. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x