srfi.192
- ポート位置 ¶このsrfiはポートの現在の位置を取得したり設定したりする手続きを提供します。
この機能はGaucheのコアでサポートされており、以下の手続きは ポート共通の操作で説明されています:
port-position port-has-port-position? set-port-position! port-has-set-port-position?
[SRFI-192]{srfi.192
}
これは、set-port-position!
が不正な位置情報を受け取った時に
投げるべきコンディションを作成するポータブルな手続きです。
pos引数は問題となった位置情報でう。
Gaucheでは、その場合のコンディションは<port-error>
のサブクラスである
<io-invalid-position-error>
のインスタンスで表されています。
カスタムポート(srfi.181
- カスタムポート参照)のset-position!
コールバック手続き
の中で、この手続きで作ったコンディションを投げた場合、
Gaucheはその例外をインターセプトして、ポートの情報をコンディションに付け加えます。
[SRFI-192]{srfi.192
}
objがi/o-invalid-position-errorか、
それを含む複合コンディションであれば#t
を、そうでなければ#f
を返します。
Gaucheでは、これは
(condition-has-type? obj <io-invalid-position-error>)
と同じことです。