_Rfeov() — ファイルの終わりの強制
フォーマット
#include <recio.h>
int _Rfeov(_RFILE *fp);
言語レベル
ILE C Extension
スレッド・セーフ
はい
説明
_Rfeov() 関数は、fp で指定されたファイルに関連したテープ・ファイルのボリュームの終わりの状態を強制します。 _Rfeov() 関数は、ファイルをファイルの次のボリュームに位置指定します。 ファイルが出力用にオープンしている場合は、出力バッファーがフラッシュされます。
_Rfeov() 関数は、テープ・ファイルの場合に有効です。
戻り値
_Rfeov() 関数は、ファイルがあるボリュームから次のボリュームに移動された場合、1 を戻します。 ファイルの最後のボリュームの処理中に呼び出された場合は EOF を戻します。 操作が正常に実行されなかった場合はゼロを戻します。 errno の値は、EIOERROR (リカバリー不能なエラーの発生) または EIORECERR (リカバリー可能な入出力エラーの発生) に設定されます。 errno の設定については、表 1 および 表 1 を参照してください。
例
#include <stdio.h>
#include <recio.h>
#include <stdlib.h>
int main(void)
{
_RFILE *tape;
_RFILE *fp;
char buf[92];
int i, feov2;
/* Open source physical file containing C source. */
if (( fp = _Ropen ( "QCSRC(T1677SRC)", "rr blkrcd=y" )) == NULL )
{
printf ( "could not open C source file¥n" );
exit ( 1 );
}
/* Open tape file to receive C source statements */
if (( tape = _Ropen ( "T1677TPF", "wr lrecl=92 blkrcd=y" )) == NULL )
{
printf ( "could not open tape file¥n" );
exit ( 2 );
}
/* Read the C source statements, find their sizes */
/* and add them to the tape file. */
while (( _Rreadn ( fp, buf, sizeof(buf), __DFT )) -> num_bytes != EOF
)
{
for ( i = sizeof(buf) - 1 ; buf[i] == ' ' && i > 12; --i );
i = (i == 12) ? 80 : (1-12);
memmove( buf, buf+12, i );
_Rwrite ( tape, buf, i );
}
feov2 = _Rfeov (fp);
_Rclose ( fp );
_Rclose ( tape );
}