srfi.74
- オクテットを単位とするバイナリブロック ¶このモジュールは、オクテットの列であるblobを扱う手続きを提供します。 Gaucheではblobは単なるu8vectorです。
このモジュールの機能はほとんどbinary.io
モジュールにあり、
実際、binary.io
の薄いラッパーとして実装されています
(binary.io
- バイナリI/O)。
このモジュールは互換性のために提供されています。Gauche専用のコードを書くなら
binary.io
を直接使うのが良いでしょう。
[SRFI-74]{srfi.74
}
eはシンボルbig
、little
、native
のいずれかでなければ
なりません。これは、エンディアンネスを示す実装依存のオブジェクトへと展開されます。
Gaucheではそれは単なるシンボルです。詳しくはエンディアンネスを参照してください。
[SRFI-74]{srfi.74
}
sizeオクテットの大きさを持つblobを新に作って返します。
Gaucheではこれは(make-u8vector size)
と同じです。
[SRFI-74]{srfi.74
}
objがblogなら#t
を、そうでなければ#f
を返します。
Gaucheではこれは(u8vector? obj)
と同じです。
[SRFI-74]{srfi.74
}
blogのオクテットで測ったサイズを返します。
Gaucheeではこれは(u8vector-length blob)
と同じです。
[SRFI-74]{srfi.74
}
sizeオクテットからなる符号なし/符号つき整数を、blobのpos
オクテット目から取り出します。
これはそれぞれ、binary.io
モジュールを使った
(get-uint size blob pos endian)
および
(get-sint size blob pos endian)
のラッパーです
(binary.io
- バイナリI/O)。
ただし、blob-uint-ref
/blob-sint-ref
は
blobとしてu8vectorしか受け付けません。
[SRFI-74]{srfi.74
}
sizeオクテットからなる符号なし/符号つき整数valを、
blobのposオクテット目から格納します。
これはそれぞれ、binary.io
モジュールを使った
(put-uint! size blob pos val endian)
および
(put-sint! size blob pos val endian)
のラッパーです
(binary.io
- バイナリI/O)。
ただし、blob-uint-set!
/blob-sint-set!
は
blobとしてu8vectorしか受け付けません。
[SRFI-74]{srfi.74
}
1オクテットの符号つき/符号なし整数をblobのpos位置から読み出し/に書き込みます。
これらはそれぞれ、binary.io
モジュールの
get-u8
、put-u8!
、get-s8
およびput-s8!
と同じです。
[SRFI-74]{srfi.74
}
それぞれのサイズの符号つき/符号なし整数を
blobのpos位置からendianのバイトオーダで読み出し/に書き込みます。
これらはそれぞれ、binary.io
モジュールの
get-XX
およびput-XX!
手続きのラッパーです。
引数順序が異なることに注意してください。
[SRFI-74]{srfi.74
}
それぞれのサイズの符号つき/符号なし整数を
blobのpos位置からネイティブバイトオーダで読み出し/に書き込みます。
これらはそれぞれ、binary.io
モジュールの
get-XX
およびput-XX!
手続きのラッパーです。
引数順序が異なることに注意してください。
註: SRFI-74は、これらの手続きはposがアラインされている場合、 すなわち扱う整数のオクテットでの大きさの整数倍のときだけ動作すれば良いとしています。 Gaucheではそういう制約はありませんが、ポータブルなコードを書く場合は気をつけて下さい。
[SRFI-74]{srfi.74
}
これはgauche.uvector
のu8vector=?
と同じです。
[SRFI-74]{srfi.74
}
blobであるsrcのssatrtからnオクテットを、
target blobのtstartからの位置にコピーします。
引数の順序が他の*-copy!
手続きと異なっているのに注意してください
(R7RSのstring-copy!
、vector-copy!
、およびgauche.uvector
の
u8vector-copy!
等は、(*-copy! target tstart src sstart send)
という順序で引数を取ります。)
[SRFI-74]{srfi.74
}
blobの新たなコピーを返します。
gauche.uvecto
のu8vector-copy
と同じです。
[SRFI-74]{srfi.74
}
u8vector->list
およびlist->u8vector
のラッパーです。
ただし、省略可能なstart/end引数は取りません。