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

Интервал:

Закладка:

Сделать

Ведение файлов и каталогов

Стандартные библиотеки и системные вызовы обеспечивают полный контроль над созданием и ведением файлов и каталогов.

chmod

С помощью системного вызова chmodвы можете изменять права доступа к файлу или каталогу. Он лежит в основе программы командной оболочки chmod.

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

#include

int chmod(const char *path, mode_t mode);

Права доступа к файлу, заданному параметром path, изменяются в соответствии со значением параметра mode. Режим файла modeзадается как в системном вызове open с помощью поразрядной операции OR, формирующей требуемые права доступа. Если программе не даны соответствующие полномочия, только владелец файла и суперпользователь могут изменять права доступа к файлу.

chown

Суперпользователь может изменить владельца файла с помощью системного вызова chown.

#include #include

int chown(const char *path, uid_t owner, gid_t group);

В вызове применяются числовые значения идентификаторов (ID) нового пользователя и группы (взятые из системных вызовов getuidи getgid) и системная величина, используемая для ограничения пользователей, имеющих разрешение изменять владельца файла. Владелец и группа файла изменяются, если заданы соответствующие полномочия.

Примечание

Стандарт POSIX в действительности допускает существование систем, в которых несуперпользователи могут изменять права владения файлом. Все "правильные" с точки зрения POSIX системы не допускают этого, но строго говоря, это расширение стандарта (в FIPS 151-2). Все виды систем, с которыми мы имеем дело в этой книге, подчиняются спецификации XSI (X/Open System Interface) и соблюдают на деле правила владения.

unlink, link и symlink

С помощью вызова unlinkвы можете удалить файл.

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

#include

int unlink(const char *path);

int link(const char *path1, const char *path2);

int symlink(const char *path1, const char *path2);

Если счетчик становится равен нулю и файл не открыт ни в одном процессе, он удаляется. В действительности элемент каталога всегда удаляется немедленно, а место, занятое содержимым файла, не очищается до тех пор, пока последний процесс (если таковой существует) не закроет файл. Этот вызов использует программа rm. Дополнительные ссылки, предоставляющие альтернативные имена файла, обычно создаются программой ln. Вы можете программно создать новые ссылки на файл с помощью системного вызова link.

Примечание

Создание файла с помощью вызова openи последующее обращение к unlinkдля этого файла — трюк, применяемый некоторыми программистами для создания временных или транзитных файлов. Эти файлы доступны программе, только пока они открыты; и будут удалены автоматически, когда программа завершится, и файлы будут закрыты.

Системный вызов linkсоздает новую ссылку на существующий файл path1. Новый элемент каталога задается в path2. Символические ссылки можно создавать аналогичным образом с помощью системного вызова symlink. Имейте в виду, что символические ссылки на файл не увеличивают значение счетчика ссылок и таким образом, в отличие от обычных (жестких) ссылок, не мешают удалению файла.

mkdir и rmdir

Вы можете создавать и удалять каталоги, применяя системные вызовы mkdirи rmdir.

#include #include

int mkdir(const char *path, mode_t mode);

Системный вызов mkdirиспользуется для создания каталогов и эквивалентен программе mkdir. Вызов mkdirформирует новый каталог с именем, указанным в параметре path. Права доступа к каталогу передаются в параметре mode и задаются как опция о O_CREATв системном вызове open и также зависят от переменной umask.

#include

int rmdir(const char *path);

Системный вызов rmdirудаляет каталоги, но только если они пустые. Программа rmdirиспользует этот системный вызов для выполнения аналогичной работы.

chdir и getcwd

Программа может перемещаться по каталогам во многом так же, как пользователь перемещается по файловой системе. Как вы применяете в командной оболочке команду cdдля смены каталога, так и программа может использовать системный вызов chdir.

#include

int chdir(const char *path);

Программа может определить свой текущий рабочий каталог, вызвав функцию getcwd.

#include

char *getcwd(char *buf, size_t size);

Функция getcwdзаписывает имя текущего каталога в заданный буфер buf. Она возвращает NULL, если имя каталога превысит размер буфера (ошибка ERANGE), заданный в параметре size. В случае успешного завершения она возвращает buf.

Функция getcwdможет также вернуть значение NULL, если во время выполнения программы каталог удален ( EINVAL) или изменились его права доступа ( EACCESS ).

Просмотр каталогов

Широко распространенная проблема систем Linux — просмотр каталогов, т.е. определение файлов, размещенных в конкретном каталоге. В программах командной оболочки она решается легко — просто скомандуйте оболочке выполнить подстановку в выражении с метасимволами. В прошлом в разных вариантах UNIX был разрешен программный доступ к низкоуровневой структуре файловой системы. Вы все еще можете открывать каталог как обычный файл и непосредственно считывать элементы каталога, но разные структуры файловых систем и реализации сделали такой подход непереносимым с машины на машину. Был разработан стандартный комплект библиотечных функций, существенно упрощающий просмотр каталогов.

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

Мы рассмотрим следующие функции:

opendir, closedir;

readdir;

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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