На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
  
> Преобразование времени
    Язык С
    ОС Linux

    Имеется две переменных типа long: в одной хранятся секунды с 1 янв 1970 года, в другой - микросекунды
    текущей секунды.
    Мне хотелось бы сделать из двух переменных одну, чтобы зафиксировать два разных её значения и
    посчитать разницу между ними в микросекундах.

    Существует ли такая функция, которая из этих двух переменных делает одну? Если да, то какая?

    Спасибо.
      Привет!

      Функция, нужная тебе, скорее всего не существует, но ее легко написать:
         result = sec * 1000000 + mcsec; // sec - секунды, mcsec - микросекунды

      Проблема в том, что в 32-х битную long нужное тебе значение не поместится, так как sec содержит в данный момент около 1030612695 = 0x3d6de6d7, что составляет половину диапазона signed long (или четверть unsigned long), так что для вычислений тебе придется использовать переменную типа long long.

      В моей системе (64-битная HP-UX c 32-битным компилером) длины типов следующие:
         time_t = 4 байт
         long = 4 байт
         long long = 8 байт
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0142 ]   [ 15 queries used ]   [ Generated: 27.04.24, 14:13 GMT ]