-->

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

На нашем литературном портале можно бесплатно читать книгу Основы программирования в Linux, Мэтью Нейл-- . Жанр: Программирование / ОС и Сети. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Основы программирования в Linux
Название: Основы программирования в Linux
Дата добавления: 16 январь 2020
Количество просмотров: 668
Читать онлайн

Основы программирования в Linux читать книгу онлайн

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

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 36 37 38 39 40 41 42 43 44 ... 324 ВПЕРЕД
Перейти на страницу:

Два файла объединены общим полем

Catalog
(Каталог). Следует помнить о том, что обычно на одну строку файла с заголовочной информацией приходится много строк в файле с данными о дорожках.

Последнее, что мы должны решить, — способ разделения элементов данных. Поля фиксированной ширины, обычные в реляционных базах, — не всегда самый удобный вариант. Другой распространенный способ, применяемый в данном примере, — запятая (т. е. файл со значениями, разделенными запятыми, или CSV-файл).

В упражнении 2.23 только для того, чтобы вы окончательно не запутались, применяются следующие функции:

get_return()
;

get_confirm()
;

set_menu_choice()
;

insert_title()
;

insert_track()
;

add_record_tracks()
;

add_records()
;

find_cd()
;

update_cd()
;

count_cds()
;

remove_records()
;

list_tracks()
.

Упражнение 2.23. Приложение для работы с коллекцией компакт-дисков

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

#!/bin/bash

# Очень простой пример сценария командной оболочки для управления

# коллекцией компакт-дисков.

# Copyright (С) 1996-2007 Wiley Publishing Inc.

# Это свободно распространяемое программное обеспечение;

# вы можете распространять эту программу и/или изменять ее

# в соответствии с положениями GNU General Public License,

# документа, опубликованного фондом Free Software Foundation;

# либо версии 2 этой лицензии или (по вашему выбору)

# любой более свежей версии.

# Эта программа распространяется в надежде на ее полезность,

# но WITHOUT ANY WARRANTY, (без каких-либо гарантий);

# даже без предполагаемой гарантии MERCHANTABILITY

# or FITNESS FOR A PARTICULAR PURPOSE (годности

# ее для продажи или применения для определенной цели).

# Более подробную информацию см. в GNU General Public License.

# Вы должны были получить копию GNU General Public License

# вместе с этой программой;

# если нет, пишите в организацию Free Software Foundation,

# Inc. no адресу: 675 Mass Ave, Cambridge, MA 02139, USA.

2. Теперь убедитесь, что установлены некоторые глобальные переменные, которые будут использоваться во всем сценарии. Задайте заголовочный файл, файл с данными о дорожках и временный файл и перехватите нажатие комбинации клавиш <Ctrl>+<C> для того, чтобы удалить временный файл, если пользователь прервет выполнение сценария.

menu_choice=&quot;&quot;

current cd=&quot;&quot;

title_file=&quot;title.cdb&quot;

tracks_file=&quot;tracks.cdb&quot;

temp_file=/tmp/cdb.$$

trap 'rm -f $temp_file' EXIT

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

get_return() (

 echo -е &quot;Press return с&quot;

 read x

 return 0

}

get_confirm() (

 echo -e &quot;Are you sure? c&quot;

 while true do

  read x

  case &quot;$x&quot; in

   y | yes | Y | Yes | YES )

    return 0;;

   n | no | N | No | NO )

    echo

    echo &quot;Cancelled&quot;

    return 1;;

   *)

    echo &quot;Please enter yes or no&quot; ;;

  esac

 done

}

4. Теперь вы дошли до основной, формирующей меню функции

set_menu_choice
. Содержимое меню изменяется динамически, добавляя дополнительные пункты при выборе компакт-диска.

set_menu_choice() {

 clear

 echo &quot;Options :-&quot;

 echo

 echo &quot; a) Add new CD&quot;

 echo &quot; f) Find CD&quot;

 echo &quot; c) Count the CDs and tracks in the catalog&quot;

 if [ &quot;$cdcatnum&quot; != &quot;&quot; ]; then

  echo &quot; 1) List tracks on $cdtitle&quot;

  echo &quot; r) Remove $cdtitle&quot;

  echo &quot; u) Update track information for $cdtitle&quot;

 fi

 echo &quot; q) Quit&quot; echo

 echo -e &quot;Please enter choice then press return c&quot;

 read menu_choice

 return

}

Примечание

Имейте в виду, что команда

echo -е
не переносится в некоторые командные оболочки.

1 ... 36 37 38 39 40 41 42 43 44 ... 324 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название