(rnrs io ports (6)) ライブラリでは、標準的で命令型のバッファ付き入出力を定義する。ポートはデータの送り先と源や同時にその両方であるものをバッファ付きで利用するためのオブジェクトを表現する。本ライブラリでは任意のデータ源・送り先からポートを作成することができる。
(rnrs io ports (6)) ライブラリでは入力ポートと出力ポートを区別する。入力ポートはデータの源であり、出力ポートはデータの送り先である。ポートは入力ポートであり出力ポートであるような場合もある。そのようなポートは一般にファイルやその他のデータに同時に読み書きを行う方法を提供する。
(rnrs io ports (6)) ライブラリではまた、バイナリポートとテキストポートを区別する。バイナリポートは未解釈のバイト列の源/送り先であり、テキストポートは文字や文字列の源/送り先である。
本節では input-port、 output-port、 binary-port、 textual-port、 binary-input-port、 textual-input-port、 binary-output-port、 textual-output-port、 port をそれぞれ順に入力ポート(または入出力ポート)、出力ポート(ないしは入出力ポート)、バイナリポート、テキストポート、バイナリ入力ポート、テキスト入力ポート、バイナリ出力ポート、テキスト出力ポート、そして任意の種類のポートでなければならない引き数の仮引き数名として使う。