LINUX.ORG.RU

[есть ли библиотека?] pure C && time_t && >32-bit


0

0

Есть ли какая-нибудь библиотека, написанная для pure C, где существует time_t с большей чем 32 бит разрядностью? Которая при этом работает на любой архитектуре с любой разрядностью и поддерживает хотя бы следующие функции: strftime, strptime, mktime, gmtime, localtime, time, getdate.

В общем, хотелось бы старым привычным способом работать с датами в диапазоне примерно от 1800 до 2100 съ секундной точностью.

Писать и отлаживать свой костыль не хочется, т.к. DST, leap seconds и time zones будут отвлекать от предметной области.

Ответ на: комментарий от linuxfan

linuxfan (10.10.2009 1:58:58)

64-разрядная glibc.

Выдирать функции из 64-разрядной glibc я буду только когда совсем не останется вариантов. Ибо гимор:

$ wc `ls`
   267   1103   6978 getdate.c
    41    222   1354 gmtime.c
    45    237   1487 localtime.c
   666   3478  21463 mktime.c
    29    173   1122 strftime.c
  1444   5080  35453 strftime_l.c
    39    234   1523 strptime.c
  1230   4095  29869 strptime_l.c
    36    184   1168 time.c
   420   1964  13519 time.h
   657   2601  16517 tzset.c
  4874  19371 130453 итого

linuxfan (10.10.2009 1:58:58)

Говорят также, что во FreeBSD даже в 32-битной поставке sizeof(time_t) == 8.

Странно. Говорят, что там stable ABI, а на деле 8 == sizeof( time_t ) . Но всё равно, даже если в Linux сделают так же, то всегда найдётся платформа, где этого не будет.

kde4-hater
() автор топика
Ответ на: комментарий от kde4-hater

>Странно. Говорят, что там stable ABI, а на деле 8 == sizeof( time_t )

А в каком месте одно другому противоречит? Ты сильно удивишься, если тебе сказать, что time_t может быть синонимом хоть для long double?

devinull ★★
()
Ответ на: комментарий от devinull
time_t timevar;
fwrite( &timevar, sizeof( time_t ), 1, file );

// …

time_t timevar;
fread( &timevar, sizeof( time_t ), 1, file );

Ну же?

kde4-hater
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.