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

Интервал:

Закладка:

Сделать

Sun Jun 9 12:34:56 2007\n\0

У нее всегда фиксированный формат длиной 26 символов. Функция ctimeэквивалентна следующему вызову:

asctime(localtime(timeval))

Она принимает необработанное машинное значение времени и преобразует его в местное время.

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

Упражнение 4.8. Функция ctime

В этом примере благодаря приведенному далее программному коду вы увидите функцию ctimeв действии.

#include

#include

#include

int main() {

time_t timeval;

(void)time(&timeval);

printf ("The date is: %s", ctime(&timeval));

exit(0);

}

Откомпилируйте и затем запустите на выполнение ctime.c, и вы увидите нечто похожее на приведенные далее строки:

$ ./ctime

The date is: Sat Jun 9 08:02:08 2007.

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

Программа ctime.c вызывает функцию timeдля получения машинного значения времени и дает возможность функции ctimeвыполнить всю тяжелую работу по преобразованию этого значения в удобочитаемую строку, которую потом и выводит на экран.

Для лучшего управления точным форматированием времени и даты ОС Linux и современные UNIX-подобные системы предоставляют функцию strftime. Она довольно похожа на функцию sprintfдля дат и времени и действует аналогичным образом:

#include

size_t strftime(char *s, size_t maxsize, const char *format, struct tm *timeptr);

Функция strftimeформатирует время и дату, представленные в структуре tm, на которую указывает параметр, timeptr, и помещает результат в строку s. Эта строка задается длиной maxsize(как минимум) символов. Строка formatприменяется для управления символами, записываемыми в строку. Как и в функции printf, она содержит обычные символы, которые будут переданы в строку, и спецификаторы преобразований для форматирования элементов времени и даты. В табл. 4.3 перечислены используемые спецификаторы преобразований.

Таблица 4.3

Спецификатор преобразования Описание
%a Сокращенное название дня недели
Полное название дня недели
%b Сокращенное название месяца
%B Полное название месяца
%c Дата и время
%d День месяца, 01–31
%H Час, 00–23
%I Час по 12-часовой шкале, 01–12
%j День в году, 001–366
%m Номер месяца в году, 01–12
%M Минуты, 00–59
%p a.m. (до полудня) или p.m. (после полудня)
%S Секунды, 00–59
%u Номер дня недели, 1–7 (1 соответствует понедельнику)
%U Номер недели в году, 01–53 (воскресенье — первый день недели)
%V Номер недели в году, 01–53 (понедельник — первый день недели)
%w Номер дня недели, 0–6 (0 соответствует воскресенью)
%x Дата в региональном формате
%X Время в региональном формате
%y Номер года, меньший 1900
%Y Год
%Z Название часового пояса
%% Символ %

Таким образом, обычная дата, такая же, как полученная из программы date, соответствует следующей строке формата функции strftime:

"%a %b %d %Н: %М: %S %Y"

Для облегчения чтения дат можно использовать функцию strptime, принимающую строку с датой и временем и формирующую структуру tmс теми же датой и временем:

#include

char *strptime(const char *buf, const char *format, struct tm *timeptr);

Строка formatконструируется точно так же, как одноименная строка функции strftime. Функций strptimeдействует аналогично функции sscanf: она сканирует строку в поиске опознаваемых полей и записывает их в переменные. В данном случае это элементы структуры tm, которая заполняется в соответствии со строкой format. Однако спецификаторы преобразований для strptimeнемного мягче спецификаторов функции strftime. Так, в функции strptimeразрешены как сокращенные, так и полные названия дней и месяцев. Любое из этих представлений будет соответствовать спецификатору %a функции strptime. Кроме того, в то время как функция strftimeдля представления чисел, меньших 10, всегда применяет ведущие нули, strptimeсчитает их необязательными.

Функция strptimeвозвращает указатель на символ, следующий за последним, обработанным в процессе преобразования. Если она встречает символы, которые не могут быть преобразованы, в этой точке преобразование просто прекращается. Для того чтобы убедиться в том, что в структуру tmзаписаны значимые данные, вызывающей программе следует проверять, достаточно ли символов строки принято и обработано.

Рассмотрим работу функций на примере (упражнение 4.9).

Упражнение 4.9. Функции strftimeи strptime

Обратите внимание на выбор спецификаторов преобразований, использованных в следующей программе:

#include

#include

#include

int main() {

struct tm *tm_ptr, timestruct;

time_t the_time;

char buf[256];

char *result;

(void)time(&the_time);

tm_ptr = localtime(&the_time);

strftime(buf, 256, "%A %d %B, %I:%S %p", tm_ptr);

printf("strftime gives: %s\n", buf);

strcpy(buf, "Thu 26 July 2007, 17:53 will do fine");

printf("calling strptime with: %s\n", buf);

tm_ptr = &timestruct;

result = strptime(buf, "%a %d %b %Y, %R", tm_ptr);

printf("strptime consumed up to: %s\n", result);

printf("strptime gives:\n");

printf ("date: %02d/%02d/%02d\n",

tm_ptr->tm_year % 100, tm_ptr->tm_mon+1, tm_ptr->tm_mday);

printf("time: %02d:%02d\n",

tm_ptr->tm_hour, tm->ptr->tm_min);

exit(0);

}

Когда вы откомпилируете и выполните программу strftime.c, то получите следующий результат:

$ ./strftime

strftime gives: Saturday 09 June, 08:16 AM

calling strptime with: Thu 26 July 2007, 17:53 will do fine

strptime concurred up to: will do fine

strptime gives:

date: 07/07/26

time: 17:53

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

Программа strftime получает текущее местное время с помощью вызовов функций timeи localtime. Затем она преобразует его в удобочитаемую форму с помощью функции strftimeс подходящим аргументом форматирования. Для демонстрации применения функции strptimeпрограмма задает строку, содержащую дату и время, затем вызывает strptime для извлечения необработанных значений времени и даты и выводит их на экран. Спецификатор преобразования %Rфункции strptime— это сокращенное обозначение комбинации %Н:%M.

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

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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