Я хочу использовать magikry указателя, чтобы сохранить класс C++, используя следующий метод, который записывает байтовые данные в файл:
result Osp::Io::File::Write (const void *buffer, int length);
Параметры:
buffer
— A pointer to the user-supplied buffer that contains byte data to be writtenlength
— Длина буфера в байтах
Исключения:
E_SUCCESS
— The method is successful.E_INVALID_STATE
— Файл еще не открыт.E_ILLEGAL_ACCESS
— Файл не открыт для операции записи или доступ запрещен из-за недостаточного разрешения.E_INVALID_ARG
— Either of the following conditions has occurred:- The specified buffer contains a null pointer.
- Указанная длина буфера меньше или равна 0.
- Дескриптор файла недействителен (либо файл закрыт другим способом, либо повреждена память).
E_STORAGE_FULL
— Место на диске заполнено.E_IO
— Произошел непредвиденный сбой устройства из-за внезапного извлечения носителя или обнаружения повреждения файла.
Я бы предпочел не предполагать, что будет какая-либо буферизация, хотя я уверен, что каждый байт не приведет к перезаписи целого блока флэш-памяти, но мне было интересно, есть ли более изящный способ записать все поля данных класс (и ничего больше, например, статические поля) с помощью, например, указателя на объект (*this
)?
Osp::Base::String
. - person John   schedule 24.01.2012