C / C ++ библиотека для независимого от платформы двоичного файлового ввода / вывода - PullRequest
10 голосов
/ 28 ноября 2010

В течение нескольких месяцев я пытался найти небольшую библиотеку C или C ++ для независимого от платформы ввода-вывода двоичных файлов, что означает обмен с прямым порядком байтов и с типами фиксированного размера.

Я знаю, что у огромных библиотек, таких как wxWidgets и Qt, они есть, и что у языков, таких как Java и C #, они есть, но я бы предпочел использовать небольшую библиотеку вместо огромного фреймворка.

Ответы [ 4 ]

3 голосов
/ 28 ноября 2010

Взгляните на Boost.Serialization

Одна из его целей - «Переносимость данных - потоки байтов, созданные на одной платформе, должны быть читаемыми на любой другой».1006 * Есть также ссылки на другие библиотеки, предоставляющие аналогичные функции.

3 голосов
/ 28 ноября 2010

Как насчет Google Буферы протокола ?

Библиотека содержит привязки для C ++, Java и Python.

1 голос
/ 28 ноября 2010

Для большинства форматов файлов я предпочитаю использовать sqlite: http://www.sqlite.org/ здорово, что вы можете получить доступ к одному и тому же файлу данных в операционных системах и языки программирования и устройства.

1 голос
/ 28 ноября 2010

Почему бы просто не использовать fstream, который поставляется со всеми компиляторами C ++. Вы просто устанавливаете флаг ios :: binary и используете sizeof, чтобы сделать его независимым от ОС. Например: http://courses.cs.vt.edu/~cs2604/fall02/binio.html и http://www.codersource.net/c/c-tutorial-on-file-operations/c-file-i-o-binary-files-using-fstream.aspx

...