» » » Майкл Джонсон - Разработка приложений в среде Linux. Второе издание


Авторские права

Майкл Джонсон - Разработка приложений в среде Linux. Второе издание

Здесь можно скачать бесплатно "Майкл Джонсон - Разработка приложений в среде Linux. Второе издание" в формате fb2, epub, txt, doc, pdf. Жанр: Программное обеспечение, издательство Вильямс, год 2007. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Майкл Джонсон - Разработка приложений в среде Linux. Второе издание
Рейтинг:
Название:
Разработка приложений в среде Linux. Второе издание
Издательство:
Вильямс
Год:
2007
ISBN:
978-5-8459-1143-8
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Разработка приложений в среде Linux. Второе издание"

Описание и краткое содержание "Разработка приложений в среде Linux. Второе издание" читать бесплатно онлайн.



Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет собой отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из других операционных систем. Подробно рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование свободно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Изобилие хорошо документированных примеров кода помогает лучше усвоить особенности программирования в Linux.

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






34:   for (ptr = service->s_aliases; *ptr; ptr++)

35:    printf(" %s", *ptr);

36:   printf("\n");

37:  }

38:

39:  return 0;

40: }

Ниже показан пример запуска программы. Обратите внимание на то, что она извлекает службы либо по каноническому имени, либо по псевдониму.

$ ./services http

служба: http

tcp-порт: 80

$ ./services source

служба: chargen

tcp-порт: 19

псевдонимы: ttytst source

Глава 18

Время

18.1. Вывод времени и даты

18.1.1. Представление времени

В системах Unix и Linux время отслеживается в секундах до или после начала эпохи, которое определяется как полночь 1 января 1970 года по UTC[148]. Положительные значения времени относятся к периоду после начала эпохи; отрицательные — до начала эпохи. Для того чтобы обеспечить работу процессов в режиме текущего времени, в Linux, как и во всех остальных версиях Unix, предусмотрен системный вызов time().

#include <time.h>


time_t time (time_t *t);

Функция time() возвращает количество секунд, прошедших с момента начала эпохи. Если значение t не является нулевым, то данная функция передает в эту переменную количество секунд, прошедших с начала эпохи.

Для решения некоторых проблем требуется более высокая разрешающая способность. В Linux предусмотрен еще один системный вызов — gettimeofday(), который предоставляет более подробную информацию.

#include <sys/time.h>

#include <unistd.h>


int gettimeofday(struct timeval *tv, struct timezone *tz);


struct timeval {

 int tv_sec;  /* секунды */

 int tv_usec; /* микросекунды */

};


struct timezone {

 int tz_minuteswest; /* минуты на запад от Гринвича */

 int tz_dsttime;     /* тип корректировки dst */

};

На большинстве платформ, включая i386, система Linux поддерживает возможность очень точного измерения времени. Стандартные персональные компьютеры содержат встроенные часы, которые обеспечивают информацию о текущем времени с точностью до микросекунд. Оборудование Alpha и SPARC также предлагает высокоточный таймер. На некоторых других платформах система Linux может отслеживать время только в пределах разрешающей способности системного таймера, который в общем случае устанавливается на значение 100 Гц. В связи с этим член tv_usec структуры timeval в подобных системах может иметь меньшую точность.

В sys/time.h определены пять макросов для обработки структур timeval.

timerclear(struct timeval *)

Данный макрос очищает структуру timeval.

timerisset(struct timeval *)

Данный макрос проверяет структуру timeval на заполнение (другими словами, отличен ли хотя бы один элемент от нуля).

timercmp(struct timeval *t0, struct timeval *t1, operator)

Данный макрос позволяет сравнивать две структуры timeval в одном временном интервале. Он вычисляется в логический эквивалент t0 операция t1, если t0 и t1 относятся к арифметическим типам. Обратите внимание на то, что макрос timercmp() не работает для операций <= и >=. Вместо этого нужно применять формы !timercmp(t1, t2, >) и !timercmp(t1, t2, <).

timeradd(struct timeval *t0, struct timeval *t1, struct timeval *result)

Добавляет t0 к t1 и размещает сумму в переменной result.

timersub(struct timeval *t0, struct timeval *t1, struct timeval *result)

Вычитает t1 из t0 и передает разность в переменную result.

Третье представление времени struct tm дает время в исчислении, более привычном для человека.

struct tm {

 int tm_sec;

 int tm_min;

 int tm_hour;

 int tm_mday;

 int tm_mon;

 int tm_year;

 int tm_wday;

 int tm_yday;

 int tm_isdst;

 long int tm_gmtoff;

 const char *tm_zone;

};

Первые девять элементов являются стандартными, последние два — нестандартные, однако очень полезные (они существуют в системах Linux).

tm_sec Количество прошедших секунд в минуте. Принимает значения от 0 до 61 (две дополнительные секунды выделяются для учета лишних секунд, относящихся к високосному году). tm_min Количество прошедших минут в часе. Принимает значения от 0 до 59. tm_hour Количество прошедших часов в сутках. Принимает значения от 0 до 23. tm_mday Номер дня месяца. Принимает значения от 1 до 31. Это единственный элемент, который не может равняться нулю. tm_mon Количество прошедших месяцев в году. Принимает значения от 0 до 11. tm_year Количество прошедших лет (считая с 1900 года). tm_wday Количество прошедших дней в неделе (считая от воскресенья). Принимает значения от 0 до 6. tm_yday Количество прошедших дней в году. Принимает значения от 0 до 365. tm_isdst Определяет, поддерживается ли летнее время в текущем часовом поясе, tm_isdst принимает положительное значение, если время переведено на летнее, 0 — если не переведено, 1 — если система не может это определить. tm_gmtoff Параметр не является переносимым, поскольку он используется не во всех системах. Если он существует, то он может также называться __tm_gmtoff. Данная переменная указывает число секунд к востоку от UTC или отрицательное число секунд к западу от UTC для часовых поясов к востоку от линии перемены дат. tm_zone Параметр не является переносимым, поскольку он используется не во всех системах. Если он существует, то он может также называться __tm_zone. Он содержит название текущего часового пояса (некоторые часовые пояса могут иметь несколько имен).

В завершение, стандарт POSIX.1b обработки данных в режиме реального времени поддерживает даже большую разрешающую способность, чем доступные в стандарте struct timeval микросекунды. В структуре struct timespec используются наносекунды, а также выделено больше пространства для размещения чисел.

struct timespec {

 long int tv_sec;  /* секунды */

 long int tv_nsec; /* наносекунды */

};

18.1.2. Преобразование, форматирование и разбор значений времени

Для взаимно-обратных преобразований времени, выраженного в показателях time_t, и времени, выраженного в показателях struct tm, используются четыре функции. Три из них являются стандартными и доступны во всех системах Linux и Unix. Четвертая, не менее полезная, может применяться не всегда, поскольку она работает только в современных системах Linux. Пятая функция (стандартная) вычисляет разность в секундах между значениями времени time_t. (Обратите внимание на то, что даже аргументы time_t передаются как указатели, а не как только аргументы struct tm.)

struct tm * gmtime(const time_t *t)

Сокращенная форма времени по Гринвичу; функция gmtime() преобразует значение time_t в struct tm, которое выражает данное время в UTC.

struct tm * localtime(const time_t *t)

localtime() ведет себя подобно gmtime() за исключением того, что создается объект struct tm, выраженный в показателях местного времени. Местное время определяется для всей системы путем установки файлов часовых поясов. Его можно переопределить с помощью переменной окружения TZ для пользователей, работающих в часовом поясе, отличном от того, в котором находится компьютер.

time_t mktime(struct tm *tp);

mktime() преобразует struct tm в time_t, предполагая, что struct tm выражается в показателях местного времени.

time_t timegm(struct tm *tp);

timegm() ведет себя подобно mktime() за исключением предположения о том, что struct tm выражается в показателях UTC. Данная функция не является стандартной.

double difftime(time_t time1, time_t time0);

difftime() возвращает число с плавающей запятой, представляющее разность во времени в секундах между двумя значениями time_t. Хотя time_t гарантированно принадлежит к арифметическому типу, единица измерения не определяется в ANSI/ISO С; difftime() возвращает разность в секундах в зависимости от единиц измерения time_t.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Разработка приложений в среде Linux. Второе издание"

Книги похожие на "Разработка приложений в среде Linux. Второе издание" читать онлайн или скачать бесплатно полные версии.


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

Все книги автора Майкл Джонсон

Майкл Джонсон - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

Отзывы о "Майкл Джонсон - Разработка приложений в среде Linux. Второе издание"

Отзывы читателей о книге "Разработка приложений в среде Linux. Второе издание", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.