Нейл Мэтью - Основы программирования в 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 - читать книгу онлайн бесплатно, автор Нейл Мэтью
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

MIN > 0и TIME = 0. В этом случае вызов readбудет ждать до тех пор, пока можно будет считать MINсимволов, и затем вернет это количество символов. В случае конца файла возвращается 0.

MIN > 0и TIME > 0. Это самый сложный случай. После вызова readждет получения символа. Когда первый символ получен, каждый раз при получении последующего символа запускается межсимвольный таймер (или перезапускается, если он уже был запущен). Вызов readзавершится, когда либо можно будет считать MINсимволов, либо межсимвольное время превысит TIMEдесятых долей секунды. Это может пригодиться для подсчета разницы между единственным нажатием клавиши и запуском функциональной клавиатурной escape-последовательности. Тем не менее следует знать, что сетевые соединения или высокая загрузка процессора могут полностью стереть такие полезные сведения о времени.

Установив неканонический режим и используя значения MINи TIME, программы могут выполнять посимвольную обработку ввода.

Доступ к режимам терминала из командной оболочки

Если вы хотите просмотреть параметры termios, находясь в командной оболочке, примените следующую команду для получения их списка:

$ stty -a

На установленных у авторов системах Linux, обладающих структурами termiosс некоторыми расширениями по сравнению со стандартными, получен следующий вывод:

speed 38400 baud; rows 24; columns 80; line = 0;

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ;

eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;

werase = ^W; lnext = ^V; flush = ^O, min = 1; time = 0;

-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts

-ignbrk -brkint -ignpar -parmirk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff

-iuclc -ixany -imaxbe1 iutf8

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel n10 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt

echoctl echoke

Среди прочего, как видите, символ EOF— это +, и включено отображение. Экспериментируя с установками терминала, легко получить в результате терминал в нестандартном режиме, что затруднит его дальнейшее использование. Есть несколько способов справиться с этой трудностью.

□ Первый способ — применить следующую команду, если ваша версия sttyподдерживает ее:

$ stty sane

Если вы потеряли преобразование клавиши возврата каретки в символ перехода на новую строку (который завершает строку), возможно, потребуется ввести stty sane, но вместо нажатия клавиши нажать комбинацию клавиш + (которая обозначает переход на новую строку).

□ Второй способ — применить команду stty -gи записать текущие установки sttyв форму, готовую к повторному считыванию. В командной строке вы можете набрать следующее:

$ stty -g > save_stty

...

< эксперименты с параметрами >

...

$ stty $(cat save_stty)

В финальной команде sttyвам все еще придется использовать комбинацию клавиш + вместо клавиши . Ту же самую методику можно применить и в сценариях командной оболочки.

save_stty="$(stty -g)"

< изменение stty-параметров >

stty $save_stty

□ Если вы все еще в тупике, третий способ — перейти на другой терминал, применить команду psдля поиска оболочки, которую вы сделали непригодной, и затем использовать команду kill hup < id процесса >для принудительного завершения этой командной оболочки. Поскольку перед выводом регистрационного приглашения параметры sttyвсегда восстанавливаются, у вас появится возможность нормально зарегистрироваться в системе еще раз.

Задание режимов терминала из командной строки

Вы также можете применять команду sttyдля установки режимов терминалов непосредственно из командной строки.

Для установки режима, в котором ваш сценарий командной оболочки сможет выполнять посимвольное считывание, вы должны отключить канонический режим и задать 1 и 0. Команда будет выглядеть следующим образом:

$ stty -icanon min 1 time 0

Теперь терминал будет считывать символы немедленно, вы можете попробовать выполнить еще раз первую программу menu1. Вы увидите, что она работает, как первоначально и предполагалось.

Вы также могли бы улучшить вашу попытку проверки пароля (см. главу 2), отключив отображение перед приглашением ввести пароль. Команда, выполняющая это действие, должна быть следующей:

$ stty -echo

Примечание

Не забудьте применить команду stty echoдля возврата отображения после ваших экспериментов!

Скорость терминала

Последняя функция, обслуживаемая структурой termios, — манипулирование скоростью линии передачи. Для этой скорости не определен отдельный элемент структуры; она управляется вызовами функций. Скорости ввода и вывода обрабатываются отдельно.

Далее приведены четыре прототипа вызовов:

#include

speed_t cfgetispeed(const struct termios *);

speed_t cfgetospeed(const struct termios *);

int cfsetispeed(struct termios *, speed_t speed);

int cfsetospeed(struct termios *, speed_t speed);

Обратите внимание на то, что они воздействуют на структуру termios, а не непосредственно на порт. Это означает, что для установки новой скорости вы должны считать текущие установки с помощью функции tcgetattr, задать скорость, применив приведенные вызовы, и затем записать структуру termiosобратно с помощью функции tcsetattr. Скорость линии передачи изменится только после вызова tcsetattr.

В вызовах перечисленных функций допускается задание разных значений скорости speed, но к основным относятся следующие константы:

B0— отключение терминала;

B1200— 1200 бод;

B2400— 2400 бод;

B9600— 9600 бод;

B19200— 19 200 бод;

B38400— 38 400 бод.

Не существует скоростей выше 38 400 бод, задаваемых стандартом, и стандартного метода обслуживания последовательных портов на более высоких скоростях.

Примечание

В некоторых системах, включая Linux, для выбора более высоких скоростей определены константы В57600, B115200и В230400. Если вы пользуетесь более старой версией ОС Linux и эти константы недоступны, можно применить команду setserialдля получения нестандартных скоростей 57 600 и 115 200. В этом случае указанные скорости будут использоваться при выборе константы B38400. Оба эти метода непереносимы, поэтому применяйте их с осторожностью.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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