Читать книгу 📗 "Linux программирование в примерах - Роббинс Арнольд"
Однако иногда бывают моменты, когда программе действительно нужно знать, с какого рода файлом связан файловый дескриптор. Семейство вызовов
stat()ttytty (сокращение для Teletype, одного из ранних производителей компьютерных терминалов) является любым устройством, представляющим терминал, т.е. нечто, что человек мог бы использовать для взаимодействия с компьютером. Это может быть либо аппаратное устройство, такое, как клавиатура и монитор персонального компьютера, или старинный терминал видеодисплея, соединенный с компьютером через последовательный порт или модем, или программный псевдотерминал, такой, который используется в оконных системах и при сетевых регистрациях.
Различить можно с помощью
isatty()#include <unistd.h> /* POSIX */int isacty(int desc);Эта функция возвращает 1, если дескриптор файла
descisatty()errnoisatty()errnoisatty()Одним местом, где используется
isatty()ls6.5. Рекомендуемая литература
1. Mastering Algorithms With C by Kyle Loudon. O'Reilly & Associates, Sebastopol, California, USA, 1999. ISBN: 1-56592-453-3.
Эта книга предоставляет практическое, утилитарное введение в алгоритмы и структуры данных с использованием С, освещая среди прочих вещей таблицы хэшей, деревья, сортировку и поиск.
2. The Art of Computer Programming Volume 3. Sorting and Searching, 2nd edition, by Donald E. Knuth Addison-Wesley, Reading Massachusetts, USA, 1998. ISBN: 0-201-89685-0. [71]
На эту книгу обычно ссылаются как на последнее слово в сортировке и поиске. Примите во внимание, что она значительно более сжата и труднее для чтения, чем книга Loudon'a.
3. Проект GTK+ [72] состоит из нескольких совместно работающих библиотек GTK+ является лежащим в основе инструментарием, используемым проектом GNU GNOME. [73] В основе иерархии библиотек располагается Glib, библиотека фундаментальных типов, структур данных и функций для работы с ними. Glib включает возможности для всех основных операций, которые мы до сих пор рассмотрели в данной книге, и многое другое, включая связанные списки и хэш-таблицы. Для просмотра онлайн-документов начните с веб-сайта проекта документации GTK+ [74], щелкните на ссылке «Загрузить» (Download) и идите дальше по онлайн-версии.
6.6. Резюме
• Время внутренне хранится в виде значений
time_ttime()difftime()time_t• Структура
struct tmgmtime()localtime()time_tstruct tmmktime()•
asctime()ctime()staticstrftime()• Сведения о часовом поясе доступны через вызов
tzset()tzset()• Стандартной процедурой для сортировки массивов является
qsort()qsort()•
scandir()struct direntalphasort()scandir()qsort()• Функция
bsearch()qsort()• Базы данных пользователей и групп могут храниться в файлах на локальном диске или могут быть доступны через сеть. Стандартный API намеренно скрывает это различие. Каждая база данных обеспечивает как линейный просмотр всей базы данных, так и непосредственные запросы имени или ID пользователя/группы.
• Наконец, для тех случаев, когда недостаточно простого
stat()isatty()Упражнения
1. Напишите простую версию команды
date2. Когда файл старше шести месяцев, '
ls -lls.c