Serialization
Serialization.serialize
── 関数
serialize(stream::IO, value)
deserialize
で読み戻せる不透明なフォーマットを使って、任意の値をストリームに書き込みます。読み戻された値は元の値と可能な限り同一となります。一般に、読み込みと書き込みで使われる Julia のバージョンもしくはシステムイメージが異なるとデシリアライズ処理は失敗します。Ptr
は全てゼロのビットパターン (NULL
) としてシリアライズされます。
ストリームには 8 バイトの識別ヘッダーが最初に書き込まれます。ヘッダーを書き込まないようにするには、Serializer
を構築してから serialize
の第一引数にそれを渡してください。writeheader
にも情報があります。
serialize(filename::AbstractString, value)
ファイルを開いて与えられた値をそこにシリアライズします。
このメソッドは Julia 1.1 以降でサポートされます。
Serialization.deserialize
── 関数
deserialize(stream)
serialize
が書き込んだ値を読み込みます。deserialize
は stream
からのバイナリデータが正しく、serialize
と互換性のある実装でシリアライズされたことを仮定します。単純さと性能を目標として設計されており、読み込まれるデータの確認は行われません。不正なデータを読むとプロセスが終了する可能性があります。stream
からのデータが完全で正しいことを保証するのは呼び出し側の責任です。
deserialize(filename::AbstractString)
ファイルを開いて、その内容をデシリアライズします。
このメソッドは Julia 1.1 以降でサポートされます。
Serialization.writeheader
── 関数
Serialization.writeheader(s::AbstractSerializer)
指定されたシリアライザに識別ヘッダーを書き込みます。ヘッダーは 8 バイトであり、その意味は次の通りです:
オフセット | 説明 |
---|---|
0 | タグバイト (0x37) |
1-2 | シグネチャバイト "JL" |
3 | プロトコルバージョン |
4, ビット 0-1 | エンディアン (0 = リトル, 1 = ビッグ) |
4, ビット 2-3 | プラットフォーム (0 = 32 ビット, 1 = 64 ビット) |
5-7 | 予約領域 |