невирусные реализации mktime с открытым исходным кодом?

#c #time #embedded

#c #время #встроенный

Вопрос:

Я работаю над микроконтроллером с примитивной стандартной библиотекой, и мне нужно преобразовать структуру календарного времени в смещение по времени от эпохи и обратно, ala struct tm <-> time_t . Для этого нет встроенной функции.

Может ли кто-нибудь направить меня к достойной реализации с лицензией на открытый исходный код, которую можно использовать в проприетарном программном обеспечении? (т. е. не LGPL / GPL)

Вероятно, я могу написать один самостоятельно, но подумал, что мне следует посмотреть, смогу ли я получить преимущество.

Комментарии:

1. Предположительно, BSD должна это реализовать?

2. Что означает «невирусный» в этом контексте?

Ответ №1:

Я просто подумал, что BSD используют свои собственные libc , когда Нил Баттерворт прокомментировал. Ищите в lib/libc/stdtime/localtime.c для mktime и time1 . Вы должны иметь возможность копировать time1 без проблем.

Вот оно: src/ lib / libc/stdtime / Attic / localtime.c

Комментарии:

1. не могли бы вы добавить ссылку на их исходный код? если это выглядит хорошо, я соглашусь.

Ответ №2:

Newlib — это реализация стандартной библиотеки, отличная от GPL, предназначенная для встроенных устройств. Он содержит mktime вызов. Однако некоторые файлы внутри являются GPL, поэтому будьте осторожны с тем, какие из них вы используете (полные условия лицензирования).

Я большой сторонник того, чтобы во встроенной работе не изобретать заново стандартную библиотеку. Вам, несомненно, понадобится нечто большее, чем просто mktime , поэтому, возможно, стоит изучить.

Комментарии:

1. Это не совсем верно. В newlib нет компонентов GPL, только некоторые LGPL.

2. mktime.c новое местоположение: sourceware.org/git/?p=newlib-cygwin.git ;a = большой двоичный объект; f=новая библиотека/libc/…