ファイルの終わりに達したときにwait_for_inputが待機しない理由を理解できません。 Mac OS Xでswi-prolog 7.6.0、Red Hat Linux 6、swi-prolog 5.7.11で試してみました。私は引用符なしで、単一の行 "f(1)。"を含むファイルへのストリームを開きます。 wait_for_inputが返ってくるが、ストリームを読むとend_of_fileを返す次のような動作が起こります。ストリームがファイルの最後にあるファイルのswi-prolog wait_for_input
?open( 'file.prolog'、読み取り、InStrm、[エイリアス(instrm)、eof_action(リセット)])。
InStrm = instrm。
?wait_for_input([instrm]、RL、15)。
RL = [instrm]。
?read(instrm、Trm)
Trm = f(1)。
?wait_for_input([instrm]、RL、15)。
RL = [instrm]。
?read(instrm、Trm)
Trm = end_of_file。
私はeof_action(reset)を使用して、別のプロセスがファイルに追加すると、新しいデータを取得します。