kprolog K-Prolog Compiler Version 6.0

ファイル操作

主に旧版との互換性やいわゆるDEC-10/Prologの機能を実現する為に、 入出力ストリームのオープン/クローズ、ログやメッセージのオン/オフ、 ファイル名の変更や出力の制限の機能を提供しています。
これらの機能の多くはストリーム操作で 実現でき、また、必要ならばこれらを混在させて使用する事ができます。 入力ストリームの操作には、 see/1see/2seepipe/1seepp/1seeing/1seeing/2seen/0を用います。また、出力ストリームの操作には、 tell/1tell/1tella/1tell/2tellpipe/1telling/1telling/2told/0が 用いられます。 close/0を用いてすべてのストリームを閉じることができます。

ログ出力に関しては log/1logging/1nolog/0を使用します。

ファイル名の変更および削除には rename/2を使用します。

出力制限機能として、出力時の複合項のネストやリストの長さの制限を行なう 機能が用意されています。この指定には maxnest/2を使用します。

また、入出力のエラーの際にK-Prologのエラーとするか、 単に失敗させるかを切替えるために、 fileerrors/0nofileerrors/0が用意されています。 この他、メッセージ出力の抑制/抑制解除には silent/1を使用します。これらの機能については、 Prologフラッグも参照して下さい。


see(@Source)
Source入力元
see(@Source,@Pipe)
Source入力元
Pipeパイプ

入力元 Source をすでに see によってオープンしていなければオープン し、ファイルの先頭に位置決めします。すでにオープンしていた場合は、以前 に読み取った位置の直後に位置決めします。そして、ファイル入力をそのファ イルと接続します。
存在しない入力元を指定すると、入出力エラーとなります。
この述語は、get や read などで文字や項を読み込むための入力元 を指定するために使います。特に Source として 'を指定したときには、 ファイル入力を変更しません。
see/2は、Pipe で指定されているコマンドの標準出力をファイル入力に接続します。 Source は、コマンドの最後の引数となります。Source または Pipe に [] を 指定すると、無指定を意味します。

エラー
instantiation_error
type_error
domain_error
existence_error(source,Source)Sourceにより指定される入力元が存在しない
permission_error(open,source,Source)Sourceにより指定される入力元がオープンできない


seepipe(@Source)
Sourceパイプ

see([],Pipe) と等価で、引数なしでパイプを接続します。

エラー
instantiation_error
type_error
domain_error


seepp(@Source)
Source入力元

プリプロセッサ ppp の出力をファイル入力に接続します。
Source は ppp への入力を指定する引数となります。

エラー
instantiation_error
type_error
domain_error


seeing(?Source)
Source入力元
seeing(?Source,?Pipe)
Source入力元
Pipeパイプ

Source を、ファイル入力に接続されている入力元を表すアトム、すな わち see(Source) で指定したアトムと単一化します。
seeing/2は、ファイル出力に接続されているコマンドと引数を、 それぞれ Pipe と Source に単一化します。 これらの述語は、現在のファイル入力を知るために用います。

エラー


seen

ファィル入力に接続されているファイルをクローズします。ファイル入力は、 標準入力と接続します。
この述語は、特定の入力元からの入力を終ることを意味します。


tell(@Sink)
Sink出力先
tell(@Sink,@Pipe)
Sink出力先
Pipeパイプ
tella(@Sink)
Sink出力先

tell/1は、出力先 Sink を、すでに tell によってオープンしていなければオー プンし、出力先の先頭に位置決めします。すでにオープンしている場合には、 出力先の終りに位置決めします。 存在しない出力先を指定したときは、新しくファイルが作られます。 そして、ファイル出力をその出力先と接続します。
tella/1は、出力先を追加モードで使用するために出力先をオープンするときに、 出力先の終りに位置決めすることを除いて tell と同じです。
tell/2は、Pipe で指定されるコマンドの標準入力をファイル出力に接続します。
Sink はコマンドの最後の引数となります。Sink または Pipe に [] を 指定すると無指定を意味します。

この述語は、put や write などで文字や項を書き出すためのファイルを 指定するために使います。

エラー
instantiation_error
type_error
domain_error
existence_error(sink,Sink)Sinkにより指定される出力先が存在しない
permission_error(open,sink,Sink)Sinkにより指定される出力先がオープンできない


tellpipe(@Pipe)
Pipeパイプ

tell([],Pipe) と等価です。


telling(?Sink)
Sink出力先
telling(?Sink,?Pipe)
Sink出力先
Pipeパイプ

Sink を、ファイル出力に接続されている出力先名を表すアトム、すなわち tell(Sink) や tella(Sink) で指定したアトムと単一化します。
この述語は、現在のファイル出力を知るために用います。


told

ファイル出力に接続されている出力先をクローズします。ファイル出力は、 標準出力と接続します。
この述語は、特定の出力先への出力を終ることを意味します。


close

オープンしているすべての出力先およびパイプをクローズします。


rename(@OldName,@NewName)
OldNameファイル名
NewName新しい名前

ファイル OldName がオープンしていればクローズし、名前を NewName に変えます。 Newnameが「[]」または「""」ならばOldNameを削除します。
この述語は、ファイルの名前を変えたり、ファイルを削除したりするために使います。

エラー
instantiation_error
type_error


log(@Sink)
Sink出力先

ログ出力を Sink としてログを開始することを指示します。ログ出力は、 常に追加モードでオープンします。
この述語は、インタプリタと端末のやりとりをファイルに記録しておくことを指示するた めに使います。

エラー
instantiation_error
type_error
permission_error(open,sink,Sink)Sinkにより指定される出力先がオープンできない


logging(?Sink)
Sink出力先

Sink を、ログ出力に接続されているファイル名を表すアトム、 すなわち log(Sink) で指定したアトムと単一化します。


nolog

ログ出力の出力先をクローズし、ログ出力を停止します。


maxnest(@Max,@Replace)
Max最大ネスト
Replace置換アトム

write、writeq や display で項を書くときに、複合項のネストまたはリストの長さが Maxを越えるときは、その部分を Replace で置き換えて出力するよう指示します。
この述語は、複雑な項を全部表示したくないときや、 無限ループを含む項を表示するときに必ず停止するように指定するために 使います。既定値は、maxnest(100,'...') となっています。

エラー
instantiation_error
type_error


fileerrors
nofileerrors

fileerrors/0は、 set_prolog_flag(fileerrors,error)と等価です。 nofileerrors/0は、 set_prolog_flag(fileerrors,fail)と等価です。


silent(@Flag)
Flagyesまたはno

silent(yes)は、 set_prolog_flag(verbose,off)と等価です。



一つ上に戻る 組込み述語に戻る 目次に戻る