名前空間
変種
操作

fgetpos

提供: cppreference.com
< c‎ | io
 
 
ファイル入出力
関数
ファイルアクセス
直接入出力
書式なし入出力
(C11以前)(C11およびそれ以降)
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)
書式付き入力
書式付き出力
ファイル位置操作
fgetpos
エラー処理
ファイルに対する操作
 
ヘッダ <stdio.h> で定義
int fgetpos( FILE          *stream, fpos_t          *pos );
(C99以前)
int fgetpos( FILE *restrict stream, fpos_t *restrict pos );
(C99およびそれ以降)

ファイルストリーム stream のファイル位置指示子および現在のパース状態 (もしあれば) を取得し、それらを pos の指すオブジェクトに格納します。 格納された値は fsetpos への入力としてのみ意味を持ちます。

目次

[編集] 引数

stream - 調べるファイルストリーム
pos - ファイル位置指示子を格納する fpos_t オブジェクトを指すポインタ

[編集] 戻り値

成功した場合は 0、そうでなければ非ゼロの値。

[編集]

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
 
int main(void)
{
    // prepare a file holding 4 values of type double
    enum {SIZE = 4};
    FILE* fp = fopen("test.bin", "wb");
    assert(fp);
    int rc = fwrite((double[SIZE]){1.1, 2.2, 3.3, 4.4}, sizeof(double), SIZE, fp);
    assert(rc == SIZE);
    fclose(fp);
 
    // demo using fsetpos to return to the beginning of a file
    fp = fopen("test.bin", "rb");
    fpos_t pos;
    fgetpos(fp, &pos);               // store start of file in pos
    double d;
    rc = fread(&d, sizeof d, 1, fp); // read the first double
    assert(rc == 1);
    printf("First value in the file: %.1f\n", d);
    fsetpos(fp,&pos);                 // move file position back to the start of the file
    rc = fread(&d, sizeof d, 1, fp);  // read the first double again
    assert(rc == 1);
    printf("First value in the file again: %.1f\n", d);
    fclose(fp);
 
    // demo error handling
    rc = fsetpos(stdin, &pos);
    if(rc) perror("could not fsetpos stdin");
}

出力:

First value in the file: 1.1
First value in the file again: 1.1
could not fsetpos stdin: Illegal seek

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.21.9.1 The fgetpos function (p: 336)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.19.9.1 The fgetpos function (p: 302)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.9.9.1 The fgetpos function

[編集] 関連項目

現在のファイル位置指示子を返します
Original:
returns the current file position indicator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(関数) [edit]
ファイル位置指示子をファイル内の指定の場所に移動します
(関数) [edit]
ファイル位置指示子をファイル内の指定の場所に移動します
(関数) [edit]