2010-07-16 2 views
0

Я ищу эффективный способ реализации механизма сериализации в C. Я знаю, что было бы просто просто сохранить данные в JSON, например, а затем повторно инициализировать все во время разбора.Я ищу эффективную сериализацию объекта C Механизм

Но мне интересно, возможно ли (или стоит) написать что-то, что просто возьмет мою структуру (содержащую динамически распределенные данные), преобразует все свои данные и все указатели в буфер, поэтому я могу разместить этот буфер в файл. Затем я прочитал файл, извлечу содержимое, malloc - место расположения размера содержимого файла и поместил содержимое в это место.

Я чувствую, что можно сделать (преобразовать все указатели в какую-то локальную схему указателей и поместить все структуры соответствующим образом в буфер, чтобы они соответствовали этим указателям). Мне интересно, существует ли такой сторонний сериализатор, или стоит ли это реализовать.

ответ

3

Вы можете посмотреть в буфера протокола: http://code.google.com/p/protobuf/, они имеют приличный c tool support

Однако, по моему опыту, просто сделать это самый простой, пользовательский читаемым способом (для отладки сериализованных данных) первой. Подумайте над тем, что вам может понадобиться изменить его позже.

Тогда, если ограничения на диске или скорости абсолютно, положительно сделайте так, чтобы вам нужно было переключиться на что-то лучше. В основном, как и в (почти), все вещи оптимизируются последними.

+0

Я проверю это. Похоже, это то, что я ищу! – lxe

Смежные вопросы