fseek

[機能]

  指定された位置にファイルポインタを移動します.成功すると 0 を返します.

[形式]
#include <stdio.h>

int fseek(FILE *stream, long offset, int origin)
	stream : FILE 構造体へのポインタ
	offset : 基準点からのバイト数
	origin : 基準点.以下の定数の内どれかを選びます
				SEEK_CUR : 現在の位置
				SEEK_END : ファイルの終端
				SEEK_SET : ファイルの先頭	
[使用例]

  1. ファイルにある 5 つの long データの中から 4 番目と 5 番目を入力します.
    #include <stdio.h>
    
    int main()
    {
    	long i1, k[5], offset;
    	FILE *stream;
    /*
    		 データの出力
    */
    	stream = fopen("data", "w");
    
    	for (i1 = 0; i1 < 5; i1++)
    		k[i1] = 10 * (i1 + 1);
    
    	fwrite(k, sizeof(long), 5, stream);
    
    	fclose(stream);
    /*
    		 データの入力
    */
    	stream = fopen("data", "r");
    
    	offset = ftell(stream);
    	printf("現在のオフセットは %ld\n", offset);
    
    	fseek(stream, 12L, SEEK_SET);        /* ファイルポインタの移動 */
    
    	offset = ftell(stream);
    	printf("現在のオフセットは %ld\n", offset);
    
    	fread(k, sizeof(long), 2, stream);
    
    	printf("     入力データは %ld %ld\n", k[0], k[1]);
    
    	return 0;
    }
    			
    (出力)
    現在のオフセットは 0
    現在のオフセットは 12
         入力データは 40 50			
[参照]

ftell, rewind, fgetpos, fsetpos, lseek, tell

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