fgetpos

[機能]

  ストリームのファイル位置を取得して,pos が指す場所に格納します.その後,fsetpos 関数を使用して,fgetpos 関数の呼び出し時の位置にリセットできます.pos 値は,fgetpos 関数と fsetpos 関数だけで使用できます.成功すると 0 を返します.

[形式]
#include <stdio.h>

int fgetpos(FILE *stream, fpos_t *pos)
	stream : FILE 構造体へのポインタ
	pos    : ファイル位置の格納先		
[使用例]

  1. 同じデータを異なる方法で 2 回読み込んでいます
    #include <stdio.h>
    
    int main()
    {
    	int i1;
    	char str[81];
    	FILE *stream;
    	fpos_t pos;
    /*
    		 テストデータをファイルへ出力
    */
    	stream = fopen("data", "w");
    
    	fputs("This is a test", stream);
    
    	fclose(stream);
    /*
    		 ファイルのオープン
    */
    	stream = fopen("data", "r");
    
    	fgetpos(stream, &pos);                /* ファイル位置の取得 */
    /*
    		 fgets関数による入力
    */
    	fgets(str, 50, stream);
    	printf("%s\n", str);
    /*
    		 fgetc関数による入力
    */
    	i1 = 0;
    	fsetpos(stream, &pos);                /* ファイル位置を戻す */
    
    	while ((str[i1] = (char)fgetc(stream)) != EOF)
    		i1++;
    
    	str[i1] = '\0';
    
    	printf("%s\n", str);
    
    	return 0;
    }
    			
    (出力)
    This is a test
    This is a test			
[参照]

fsetpos, fseek, ftell, rewind, tell

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引