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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 174 175 176 177 178 179 180 181 182 ... 324

На самом деле это набор команд редактора для превращения одного файла в другой. Предположим, что у вас есть файл file1.c и файл diffs. Вы можете обновить свой файл с помощью команды patch следующим образом:

$ <b>patch file1.c diffs</b>

Hmm... Looks like a normal diff to me...

Patching file file1.c using Plan A...

Hunk #1 succeeded at 1.

Hunk #2 succeeded at 4.

Hunk #3 succeeded at 7.

done

$

Команда patch сделала file1.c таким же, как файл file2.c.

У команды patch есть еще один фокус: возможность отказа от внесенных изменений. Предположим, что вам не понравились изменения, и вы хотите вернуться назад к file1 с. Нет ничего проще; всего лишь воспользуйтесь командой patch еще раз, добавив опцию -R (обратная корректировка).

$ <b>patch -R file1.c diffs</b>

Hmm... Looks like a normal diff to me...

Patching file file1.c using Plan A...

Hunk #1 succeeded at 1.

Hunk #2 succeeded at 4.

Hunk #3 succeeded at 6.

done$

Файл file1.с возвращен в свое исходное состояние.

У команды patch есть и другие опции, но лучше всего на входе команды решить, что вы хотите сделать, а затем "выполнить верное действие". Если вдруг команда patch завершается аварийно, она создает файл с расширением rej, содержащий фрагменты, которые невозможно было исправить.

Когда вы работаете с корректировками программного обеспечения, полезно применять опцию diff -с, формирующую "окружающий контекст". Она включает несколько строк перед каждым изменением и после него, так что команда patch сможет проверить контекстные соответствия перед внесением изменений. Кроме того, в этом случае легче читать исправленный файл.

Примечание

Если вы нашли и исправили ошибку в программе, легче, точнее и вежливее отправить автору исправленный файл, а не просто описание исправления.

Другие утилиты распространения

Программы Linux и исходный код обычно распространяются в виде файлов с именами, в которые включен номер версии, и расширениями tar.gz или tgz. Это сжатые программой gzip файлы TAR (tape archive, архивы лент), также называемые "tarballs" (клубки архивов tar). Если применить обычную команду tar, обрабатывать эти файлы придется в два этапа. Приведенный далее код создает сжатый программой gzip файл TAR вашего приложения:

$ <b>tar cvf myapp-1.0.tar main.c 2.c 3.c *.h myapp.1 Makefile5</b>

main.c

2.c

3.c

a.h

b.h

c.h

myapp.1

Makefile5

$

Теперь у вас есть файл TAR:

$ <b>ls -l *.tar</b>

-rw-r--r-- 1 neil users  10240 2007-07-09 11:23 myapp-1.0.tar

$

Сделать его меньше можно с помощью программы сжатия gzip:

$ <b>gzip myapp-1.0.tar $ ls -l *.gz</b>

-rw-r--r-- 1 neil users 1648 2007-07-09 11:23 myapp-1.0.tar.gz

$

Как видите, в результате впечатляющее уменьшение размера. Файл tar.gz можно в дальнейшем переименовать, оставив просто расширение tgz.

$ <b>mv myapp-1.0.tar.gz myapp_v1.tgz</b>

Практика задания имен, заканчивающихся точкой и тремя символами, — уступка программному обеспечению, работающему в ОС Windows, которое в отличие от программ для ОС Linux и UNIX сильно зависит от наличия корректного расширения файла. Для того чтобы получить свои файлы обратно, удалите сжатие и опять извлеките их из файла, полученного с помощью tar:

$ <b>mv myapp_v1.tgz myapp-1.0.tar.gz</b>

$ <b>gzip -d myapp-1.0.tar.gz</b>

$ <b>tar xvf myapp-1.0.tar</b>

main.с

2.c

3.c

a.h

b.h

c.h

myapp.1

Makefile5

$

С версией GNU программы tar все еще проще — вы можете создать сжатый архив за один шаг:

$ <b>tar zcvf myapp_v1.tgz main.c 2.c 3.c *.h myapp.1 Makefile5</b>

main.c

2.c

3.c

a.h

b.h

c.h

myapp.1

Makefile5

$

Также легко вы можете развернуть файл:

$ <b>tar zxvf myapp_v1.tgz</b>

main.c

2.с

3. с

a. h

b. h c.h

myapp.1

Makefile5

$

Если хотите увидеть содержимое архива, не извлекая его, следует вызвать программу tar с несколько иной опцией: tar ztvf.

В предыдущих примерах мы применяли tar, описывая только необходимые опции. Теперь дадим краткий обзор команды и нескольких самых популярных опций. Как вы видели в примерах, у команды следующая базовая синтаксическая запись:

tar [<i>опции</i>] [<i>список_файлов</i>]

1 ... 174 175 176 177 178 179 180 181 182 ... 324
На этой странице вы можете бесплатно читать книгу Основы программирования в Linux - Мэтью Нейл бесплатно.

Оставить комментарий

Рейтинговые книги