私はそれを得たと思います!
このページを参照してください...
@false コメントの後に編集します。カプセル化コードのスケッチを次に示します。
set_file_size(Path, Size) :-
setup_call_cleanup(
open(Path, update, S),
( stream_property(S, reposition(true)),
% stream_property(S, position(Q)),
% set_stream_position(S, Q),
seek(S, Size, bof, Size),
set_end_of_stream(S)
),
close(S)).
これは機能しますが、組み込みのseek /4に依存しています。そのような呼び出し WRT ISO 準拠のステータスを完全に判断することはできません。ISO IOの下にリストされていますが、準拠しているとタグ付けされていません...
これらの 2 つのコメント行は、不透明な用語 position/1を検査するのに役立ちました。値を問い合わせる stream_position_dataがあります。