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

Здесь есть возможность читать онлайн «Нейл Мэтью - Основы программирования в Linux» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2009, ISBN: 2009, Издательство: «БХВ-Петербург», Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Основы программирования в Linux: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Основы программирования в Linux»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Основы программирования в Linux», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

unqualified storage: array[2].data = "john"

debug0.с:10:18: Read-only string literal storage used as initial value for

unqualified storage: array[3].data = "rick"

debug0.c:11:18: Read-only string literal storage used as initial value for

unqualified storage: array[4].data = "alex"

debug0.с:14:22: Old style function declaration

Function definition is in old style syntax. Standard prototype syntax is

preferred. (Use -oldstyle to inhibit warning)

debug0.с: (in function sort)

debug0.c:20:31: Variable s used before definition

An rvalue is used that may not be initialized to a value on some execution

path. (Use -usedef to inhibit warning)

debug0.с:20:23: Left operand of & is not unsigned value (boolean):

i < n & s != 0

An operand to a bitwise operator is not an unsigned values. This may have

unexpected results depending on the signed representations. (Use

-bitwisesigned to inhibit warning).

debug0.c:20:23: Test expression for for not boolean, type unsigned int:

i < n & s != 0

Test expression type is not boolean or int. (Use -predboolint to inhibit

warning);

debug0.с:25:41: Undocumented modification of a[]: a[j] = a[j + 1]

An externally-visible object is modified by a function with no /*@modifies@*/

comment. The /*@modifies ... @*/ control comment can be used to give a

modifies list for an unspecified function. (Use -modnomods to inhibit

warning)

debug0.c:26:41: Undocumented modification of a[]: a[j + 1] = t

debug0.c:20:23: Operands of & are non-integer (boolean) (in post loop test):

i < n & s != 0

A primitive operation does not type check strictly. (Use -strictops to

inhibit warning)

debug0.с:32:14: Path with no return in function declared to return int

There is a path through a function declared to return a value on which there

is no return statement. This means the execution may fall through without

returning a meaningful result to the caller. (Use -noret to inhibit

warning)

debug0.с:34:13: Function main declared without parameter list

A function declaration does not have a parameter list. (Use -noparams

to inhibit warning)

debug0.с: (in function main)

debug0.с:36:22: Undocumented use of global array

A checked global variable is used in the function, but not listed in its

globals clause. By default, only globals specified in .lcl files are

checked.

To check all globals, use +allglobals. To check globals selectively use

/*@checked@*/ in the global declaration. (Use -globs to inhibit warning)

debug0.с:36:17: Undetected modification possible from call to unconstrained

function sort: sort

An unconstrained function is called in a function body where

modifications are checked. Since the unconstrained function may modify

anything, there may be undetected modifications in the checked function.

(Use -modunconnomods to inhibit warning)

debug0.c:36:17: Return value (type int) ignored: sort(array, 5)

Result returned by function call is not used. If this is intended, can

cast result to (void) to eliminate message. (Use -retvalint to inhibit

warning)

debug0.c:37:14: Path with no return in function declared to return int

debug0.c:6:18: Variable exported but not used outside debug0: array

A declaration is exported, but not used outside this module. Declaration

can use static qualifier. (Use -exportlocal to inhibit warning)

debug0.c:14:13: Function exported but not used outside debug0: sort

debug0.c:15:17: Definition of sort

debug0.c:6:18: Variable array exported but not declared in header file

A variable declaration is exported, but does not appear in a header

file. (Used with exportheader.) (Use -exportheadervar to inhibit warning)

debug0.c:14:13: Function sort exported but not declared in header file

A declaration is exported, but does not appear in a header file. (Use

-exportheader to inhibit warning)

debug0.c:15:17: Definition of sort

Finished checking - 22 code warnings

$

Утилита выражает неудовольствие по поводу объявления функций в старом стиле (не ANSI) и несоответствия типов значений, возвращаемых функциями, и самими величинами, которые они возвращают (или нет) в действительности. Эти предупреждения не влияют на работу программы, но должны быть выведены.

Она также обнаружила две реальные ошибки в следующем фрагменте кода:

/* 18 */ int s;

/* 19 */

/* 20 */ for(; i < n & s != 0; i++) {

/* 21 */ s = 0;

Средство splint определило (выделенные цветом строки предыдущего вывода), что переменная sиспользуется в строке 20, но не была при этом инициализирована, и что оператор &стоит на месте более обычного оператора &&.В данном случае старшинство оператора изменяет значение условия и создает проблему в программе.

Обе эти ошибки были исправлены при чтении исходного текста программы до запуска процесса отладки. Несмотря на то, что пример мало изобретателен и служит только для демонстрации, подобные ошибки регулярно возникают в реальных программах."

Средства, отслеживающие вызовы функций

Три утилиты — ctags, cxrefи cflow— формируют часть стандарта X/Open и, следовательно, должны включаться в системы, представляемые как системы UNIX с программными средствами разработки.

Примечание

Эти утилиты и другие, упоминаемые в этой главе, могут не входить в состав вашего дистрибутива Linux. Если они пропущены, можно поискать их реализации в Интернете. Хорошая отправная точка (для дистрибутивов Linux, поддерживающих формат RPM-пакетов) — Web-сайты http://rpmfind.netи http://rpm.pbone.net.Можно попытаться поискать в нескольких репозитариях для конкретных дистрибутивов, включая http://ftp.gwdg.de/pub/opensuse/для openSUSE, http://rpm.livna.orgдля Fedora и http://packages.slackware.it/для Slackware.

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

Интервал:

Закладка:

Сделать

Похожие книги на «Основы программирования в Linux»

Представляем Вашему вниманию похожие книги на «Основы программирования в Linux» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Основы программирования в Linux» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.