#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
без проблем.
Комментарии:
1. не могли бы вы добавить ссылку на их исходный код? если это выглядит хорошо, я соглашусь.
Ответ №2:
Newlib — это реализация стандартной библиотеки, отличная от GPL, предназначенная для встроенных устройств. Он содержит mktime
вызов. Однако некоторые файлы внутри являются GPL, поэтому будьте осторожны с тем, какие из них вы используете (полные условия лицензирования).
Я большой сторонник того, чтобы во встроенной работе не изобретать заново стандартную библиотеку. Вам, несомненно, понадобится нечто большее, чем просто mktime
, поэтому, возможно, стоит изучить.
Комментарии:
1. Это не совсем верно. В newlib нет компонентов GPL, только некоторые LGPL.
2. mktime.c новое местоположение: sourceware.org/git/?p=newlib-cygwin.git ;a = большой двоичный объект; f=новая библиотека/libc/…