-->

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

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

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

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

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

Перейти на страницу:

done

$

Отредактируйте файл в соответствии с приведенным далее кодом:

#include <stdlib.h>

#include <stdio.h>

/*

 Это важный файл для управления данным проектом.

 В нем реализована каноническая программа "Hello World".

 Filename: $RCSfile$

*/

static char *RCSinfo = "$Id$";

int main() {

 printf ("Hello Worldn");

 printf("This is an extra line added latern");

 printf("This file is under RCS control. Its ID isn%sn", RCSinfo);

 exit(EXIT_SUCCESS);

}

Теперь сохраните эту версию и посмотрите, как RCS управляет специальными строками:

$ <b>ci important.с</b>

important.с,v &lt;-- important.c

new revision: 1.3;

previous revision: 1.2

enter log message, terminated with single '.' or end of file:

&gt;&gt; <b>Added $RCSfile$ and $Id$ strings</b>

&gt;&gt; <b>.</b>

done

$

Если заглянете в каталог, то найдете только RCS-файл.

$ <b>ls -l</b>

-r--r--r-- 1 neil users 907 2007-07-09 08:07 important.с,v

$

Если вы извлечете текущую версию исходного файла (с помощью команды

со
) и просмотрите его, то увидите, что макросы раскрыты:

#include &lt;stdlib.h&gt;

#include &lt;stdio.h&gt;

/*

 Это важный файл для управления данным проектом.

 В нем реализована каноническая программа &quot;Hello World&quot;.

 Filename: $RCSfile: important.с,v $

<i>*/</i>

static char *RCSinfo = &quot;$Id: important.c,v 1.3 2007/07/09. 07:07:08 neil Exp $&quot;;

int main() {

 printf(&quot;Hello Worldn&quot;);

 printf(&quot;This is an extra line added latern&quot;);

 printf(&quot;This file is under RCS control. Its ID isn%sn&quot;, RCSinfo);

 exit(EXIT_SUCCESS);

}

А теперь выполните упражнение 9.6.

Упражнение 9.6. GNU-версия
make
с RCS

У команды

make
версии GNU есть несколько встроенных правил для управления RCS-файлами. В этом примере вы увидите, как работать с отсутствующим исходным файлом.

$ <b>rm -f important.с</b>

$ <b>make important</b>

со important.с,v important.c

important.с,v --&gt; important.c

revision 1.3

done

сс -c important.c -o important.о сс important.о -о important

rm important.о important.с

$

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

У команды

make
есть стандартное правило для создания файла без расширения с помощью компиляции файла с тем же именем и расширением с. Второе стандартное правило разрешает
make
создать файл important.c из файла important.c,v, используя RCS. Поскольку нет файла с именем important.c, команда
make
создала файл с расширением с, получив последнюю версию файла с помощью команды
со
. После компиляции она навела порядок, удалив файл important.c.

Команда ident

Команду

ident
можно применять для поиска версии файла, которая содержит строку
$Id$
. Поскольку вы сохранили строку в переменной, она появляется и в результирующем исполняемом файле. Может оказаться так, что, если вы включили специальные строки в исходный код, но никогда не обращаетесь к ним, компилятор из соображений оптимизации удалит их. Эту проблему можно обойти, добавив в исходный код несколько фиктивных обращений к ним, хотя по мере улучшения компиляторов делать это становится все труднее!

Далее показан простой пример того, как можно использовать команду

ident
для двойной проверки RCS-версии исходного файла, применяемого для формирования исполняемого файла (упражнение 9.7).

Упражнение 9.7. Команда
ident

$ <b>./important</b>

Hello World

This is an extra line added later

This file is under RCS control. Its ID is

$Id: important.c,v 1.3 2007/07/09 07:07:08 neil Exp $

$ <b>ident important</b>

important:

$Id: important.c,v 1.3 2007/07/09 07 :07 :08 neil Exp $

$

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

Выполняя программу, вы показываете строку, включенную в исполняемый файл. Далее вы демонстрируете, как команда

ident
может извлечь из исполняемого файла строки вида
$Id$
.

Этот метод применения RCS и строк вида

$Id$
, включаемых в исполняемые файлы, может быть очень мощным средством определения версии файла, содержащей ошибку, о которой сообщил пользователь. RCS-файлы (или SCCS) можно применять как часть средства отслеживания в проекте проблем, о которых сообщается, и способов их устранения. Если вы продаете программное обеспечение или даже отдаете его бесплатно, очень важно знать, что изменилось между двумя выпущенными версиями.

Перейти на страницу:
Комментариев (0)
название