您能否建議一個經過驗證的用於C的二進制流解析庫?這將是很好的,如果它會像C允許的那樣聲明。C的二進制流解析庫C
我需要它進行二進制協議解析,並通過它的正式規範來描述相當複雜的協議,這就是爲什麼我要儘可能多地聲明它。類似於 Haskell的Data.Binary.Get會很棒。
我發現binpac,但似乎重量級和麪向C++的,但該項目是純C.
舉例說明我的意思:
parser_t parsers[] = {
{ get_bit, out_field1, &pkt.field1 }
,{ get_bit7, 0, 0 } // skip 7 bits
,{ get_word16be, out_field2, &pkt.field2 }
,{ 0, 0, 0 } // end
};
// skip
// char *data, char *data_end,
map_parsers(data, data_end, parsers); // parse stream
UPD。只需要一個快速的庫即可從內存中順序讀取位,字,對齊,未對齊等等就可以了。我可以自己編寫聲明式前端甚至DSL。
C沒有流構造,也許如果你給了我們一些示例數據,你從哪裏得到它,例如FIFO,命名管道等,那麼我們可以指向你的工具或庫。 –
char *夠好。例如: – voidlizard
在問題 – voidlizard