Мне было поручено добавить поддержку потоков (C89/C90) в библиотеки для встроенного компилятора C моей компании. Наше целевое оборудование обычно имеет 1 МБ или меньше пространства кода и не имеет операционной системы.Реализация потоков файлов C (FILE *, fopen, fread и т. Д.) На встроенной платформе
У нас есть много потоковых реализаций всей кодовой базы, которые я могу использовать в качестве отправной точки. Например, консоль, работающая через сокеты TCP или последовательный порт, веб-сервер, который читает с FAT на SD-карте или в памяти, и даже прошивку, которая читает из многих источников.
Прежде чем я пойду и заново изобретаю колесо, мне интересно, существуют ли существующие реализации, которые я мог бы использовать или использовать в качестве отправной точки для моей работы. Несмотря на то, что мы предоставляем полный исходный код нашим клиентам, лицензионный код GPL не является вариантом, так как наши клиенты не хотят выпускать исходный код для своих продуктов.
Может ли кто-нибудь рекомендовать книгу (аннотированный источник Unix, текст CompSci) или источник, основанный на общедоступном домене/BSD? Я бы предпочел посмотреть на более старую ОС, ориентированную на одно устройство, поскольку текущие операционные системы содержат путаницу макросов и слоев typedefs, которые затрудняют выполнение даже простого определения структуры.
Точно, что я ищу - я закажу его до конца дня. Благодаря! – tomlogic
Очень хорошая книга, но обратите внимание, что источник библиотеки, опубликованный в книге, не является свободно распространяемым. Строго говоря, вам придется переопределить lib самостоятельно (не огромная работа, но зависящая от того, насколько строгая ваша компания относится к IP, может потребоваться перехват обручей). Обратите внимание, что Plauger продает библиотеку и продает ее с правами перераспределения. Библиотека MSVC и библиотека IAR, которую я сейчас использую, первоначально лицензированы у Dinkumware Plaugher, и я уверен, что некоторые другие производители компиляторов делают то же самое. Я понятия не имею, какова будет цена, если вы хотите пойти по этому маршруту. –
Быстрое наблюдение - я получил книгу, и это была отличная рекомендация. Просто был комментарий к отрывкам stdlib документа C90. Я смог задокументировать план обновления существующей библиотеки до соответствия требованиям C90 и работал над проектом, полностью поддерживающим потоки. Спасибо за подсказку, Нейл. – tomlogic