R6RS:翻訳:Standard Libraries:8.2.8 Binary input

R6RS:翻訳:Standard Libraries:8.2.8 Binary input

8.2.8 バイナリ入力

[procedure] (get-u8 binary-input-port)

単一のバイトが読み込めるようになるかファイル終端に到達するまで必要に応じてブロックしつつ、 binary-input-port から読み込む。バイトが読み込み可能な場合 get-u8 はそのバイトをオクテットとして返し、そのバイトの後ろを指すように binary-input-port を更新する。ファイル終端に到達する前に入力バイトが見つからない場合には、ファイル終端オブジェクトが返る。

[procedure] (lookahead-u8 binary-input-port)

lookahead-u8 手続きは get-u8 に類似であるが、 binary-input-port が返ってきたバイトのあとを指すように更新しない。

[procedure] (get-bytevector-n binary-input-port count)

count は、読み込むバイト列の長さを表す、正確で、非負の整数オブジェクトでなければならない。 get-bytevector-n 手続きは、 count バイトのデータが読み込み可能になるか、ファイル終端に到達するまで必要に応じてブロックしつつ、 binary-input-port から読み込む。ファイル終端に到達する前に count バイト読み込み可能な場合、 get-bytevector-n は大きさ count のバイトベクタを返す。指定より短いデータがファイル終端より前に読み込み可能な場合、 get-bytevector-n はそれだけのバイトを返す。どちらの場合も、入力ポートは読み込んだバイトのちょうど後を指すように更新される。バイトがまったく読み込み可能になる前にファイル終端に到達した場合には、 get-bytevector-n はファイル終端オブジェクトを返す。

[procedure] (get-bytevector-n! binary-input-port bytevector start count)

count は、読み込むバイト列の長さを表す、正確で、非負の整数オブジェクトでなければならない。 bytevector には最低 start + count 個の要素がなければならない。

get-bytevector-n! 手続きは、 count バイトのデータが読み込み可能になるか、ファイル終端に到達するまで必要に応じてブロックしつつ、 binary-input-port から読み込む。ファイル終端に到達する前に count バイト読み込み可能な場合、それが bytevectorstart 番目から始まる部分に書き込まれる。戻り値は count である。ファイル終端より前で指定より短いバイト列が読み込み可能な場合には、読み込み可能なバイト列が bytevectorstart 番目を始点に書き込まれる。このときの戻り値は、実際に読み込まれたバイト列の量を表す数値オブジェクトである。どちらの場合も、入力ポートは読み込んだバイトのちょうど後を指すように更新される。バイトがまったく読み込み可能になる前にファイル終端に到達した場合には、 get-bytevector-n はファイル終端オブジェクトを返す。

[procedure] (get-bytevector-some binary-input-port)

binary-input-port からバイト列が読み込み可能になるか、ファイル終端に到達するまで必要に応じてブロックしつつ、 binary-input-port から読み込む。バイト列が読み込み可能になった場合、 get-bytevectir-some は、最初に読み込み可能になったバイト列(最低でもひとつ)を格納した新規に割り当てられた bytevector を返し、 binary-input-port を読み込んだバイトのちょうど後を指すように更新する。バイトがまったく読み込み可能になる前にファイル終端に到達した場合には、 get-bytevector-n はファイル終端オブジェクトを返す。

[procedure] (get-bytevector-all binary-input-port)

必要に応じてブロックしつつ、次のファイル終端までのバイトをすべて読み込む。 1 バイト以上読み込んだ場合には get-bytevector-all は、次のファイル終端までのすべてのバイトを格納したバイトベクタを返す。さもなくは、ファイル終端オブジェクトを返す。この操作はより多くのバイトが読み込み可能になる場合は、既に読み込み可能なバイトがいくらかある場合でも無期限にブロックすることがある。


Last modified : 2008/03/14 05:53:20 UTC