名称
fgetpos(), fsetpos() ― ストリームのファイル位置指標の保存および回復
構文
#include <stdio.h>
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, const fpos_t *pos);
説明
| fgetpos() | | stream で指示したファイルの位置指標の現在の値を、 pos の指すオブジェクトに保存します。 保存された値は fsetpos() に使用して、ストリームの位置を fgetpos() を呼び出したときの位置に戻すことができます。 |
| fsetpos() | | stream で指示したファイル位置指標を pos の指すオブジェクトの値に従ってセットします。 pos の値は同一のストリームに対して、前もって fgetpos() 呼び出しでセットした値でなければなりません。 fsetpos() 呼び出しは正常終了すると、 そのストリームのエンドオブファイル状態をクリアし、そのストリームに対する ungetc(3S) の効果を取り消します。 fsetpos() 呼び出しの後、両用ストリームに対する次の操作は入力、出力どちらでも構いません。 |
戻り値
正常終了すると 0 を返し、失敗すると 0 以外の値を返します。
エラー
fgetpos() が失敗した場合、次の値のどれかが errno に設定されます。
| [EINVAL] | | この環境において、 ファイル位置の現在値が fpos_t のサイズの変数で正しく示されない場合 |
下の関数 ftell() によって、その他の errno 値が設定されることもあります ftell(3S) を参照)。
警告
fopen() でオープンしていないファイルに対して、この関数を使用すると失敗します。 特に、ターミナルや popen(3S) でオープンしたファイルに対してこの関数を使用してはなりません。
fsetpos() はアペンドモード fopen(3S) 参照) でオープンしたファイルに対しては何も行いません。
参照
fgetpos64(3S), fseek(3S), fopen(3S), popen(3S), ungetc(3S),
thread_safety(5)
標準準拠
fgetpos(): AES, SVID3, XPG4, ANSI C
fsetpos(): AES, SVID3, XPG4, ANSI C