Основы программирования в Linux - Мэтью Нейл Страница 70
- Категория: Компьютеры и Интернет / Интернет
- Автор: Мэтью Нейл
- Страниц: 324
- Добавлено: 2020-09-22 15:22:12
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала
Основы программирования в Linux - Мэтью Нейл краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «Основы программирования в Linux - Мэтью Нейл» бесплатно полную версию:В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стандартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов
Основы программирования в Linux - Мэтью Нейл читать онлайн бесплатно
<b>#include <time.h></b>
<b>struct tm *localtime(const time_t *timeval);</b>
Функция localtime идентична функции gmtime за исключением того, что она возвращает структуру, содержащую значения с поправками на местный часовой пояс и действующее летнее время. Если вы выполните программу gmtime, но замените все вызовы функции gmtime на вызовы localtime, в отчете программы вы увидите правильные время и дату.
Для преобразования разделенной на элементы структуры tm в общее внутреннее значение времени можно применить функцию mktime:
<b>#include <time.h></b>
<b>time_t mktime(struct tm *timeptr);</b>
Функция mktime вернет -1, если структура не может быть представлена как значение типа time_t.
Для вывода программой date "дружественных" (в противоположность машинному) времени и даты можно воспользоваться функциями asctime и ctime:
<b>#include <time.h></b>
<b>char *asctime(const struct tm *timeptr);</b>
<b>char *ctime(const time_t *timeval);</b>
Функция asctime возвращает строку, представляющую время и дату, заданные tm-структурой timeptr. У возвращаемой строки формат, подобный приведенному далее:
Sun Jun 9 12:34:56 2007\n\0
У нее всегда фиксированный формат длиной 26 символов. Функция ctime эквивалентна следующему вызову:
asctime(localtime(timeval))
Она принимает необработанное машинное значение времени и преобразует его в местное время.
А теперь выполните упражнение 4.8.
Упражнение 4.8. Функция ctimeВ этом примере благодаря приведенному далее программному коду вы увидите функцию ctime в действии.
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
time_t timeval;
(void)time(&timeval);
printf ("The date is: %s", ctime(&timeval));
exit(0);
}
Откомпилируйте и затем запустите на выполнение ctime.c, и вы увидите нечто похожее на приведенные далее строки:
$ <b>./ctime</b>
The date is: Sat Jun 9 08:02:08 2007.
Как это работает
Программа ctime.c вызывает функцию time для получения машинного значения времени и дает возможность функции ctime выполнить всю тяжелую работу по преобразованию этого значения в удобочитаемую строку, которую потом и выводит на экран.
Для лучшего управления точным форматированием времени и даты ОС Linux и современные UNIX-подобные системы предоставляют функцию strftime. Она довольно похожа на функцию sprintf для дат и времени и действует аналогичным образом:
<b>#include <time.h></b>
<b>size_t strftime(char *s, size_t maxsize, const char *format, struct tm *timeptr);</b>
Функция 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 Название часового пояса %% Символ %Жалоба
Напишите нам, и мы в срочном порядке примем меры.