rewind() — 現在のファイル位置の調整
フォーマット
#include <stdio.h>
void rewind(FILE *stream);
言語レベル
ANSI
スレッド・セーフ
はい
説明
rewind() 関数は、stream に関連したファイル・ポインターの位置をファイルの先頭に変更します。
rewind() 関数への呼び出しは、以下の場合と同じです。
(void)fseek(stream, 0L, SEEK_SET);
ただし、rewind() 関数は stream のエラー標識もクリアします。
rewind() 関数は、type=record を指定してオープンしたファイルについてはサポートされません。
戻り値
戻り値はありません。
errno の値は、次のいずれかに設定されます。
- 値
- 意味
- EBADF
- ファイル・ポインター、または記述子が有効ではありません。
- ENODEV
- 誤ったデバイスに対して、操作が試行されました。
- EIOERROR
- リカバリー不能な入出力エラーが発生しました。
- EIORECERR
- リカバリー可能な入出力エラーが発生しました。
例
この例では、まず入力と出力用のファイル myfile をオープンします。
この例では、ファイルに整数を書き込み、
rewind() を使用してファイル・ポインターの位置をファイルの先頭に変更してから、データを読み取ります。
#include <stdio.h>
FILE *stream;
int data1, data2, data3, data4;
int main(void)
{
data1 = 1; data2 = -37;
/* Place data in the file */
stream = fopen("mylib/myfile", "w+");
fprintf(stream, "%d %d¥n", data1, data2);
/* Now read the data file */
rewind(stream);
fscanf(stream, "%d", &data3);
fscanf(stream, "%d", &data4);
printf("The values read back in are: %d and %d¥n",
data3, data4);
}
/******************** Output should be similar to: **************
The values read back in are: 1 and -37
*/