fgetpos

Mendapatkan indikator posisi file aliran.

Sintaks

int fgetpos(
   FILE *stream,
   fpos_t *pos
);

Parameter

stream
Aliran target.

pos
Penyimpanan indikator posisi.

Nilai hasil

Jika berhasil, fgetpos mengembalikan 0. Jika gagal, ia mengembalikan nilai bukan nol dan diatur ke salah satu konstanta errno manifes berikut (ditentukan dalam STDIO. H): EBADF, yang berarti aliran yang ditentukan bukan penunjuk file yang valid atau tidak dapat diakses, atau EINVAL, yang berarti stream nilai atau nilai pos tidak valid, seperti jika salah satunya adalah penunjuk null. Jika stream atau pos adalah NULL penunjuk, fungsi memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter.

Keterangan

Fungsi fgetpos ini mendapatkan nilai stream indikator posisi file argumen saat ini dan menyimpannya di objek yang ditujukkan oleh pos. Fungsi nantinya fsetpos dapat menggunakan informasi yang disimpan untuk pos mengatur ulang stream penunjuk argumen ke posisinya pada saat fgetpos itu dipanggil. Nilai pos disimpan dalam format internal dan ditujukan untuk digunakan hanya oleh fgetpos dan fsetpos.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Function Header yang diperlukan
fgetpos <stdio.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_fgetpos.c
// This program uses fgetpos and fsetpos to
// return to a location in a file.

#include <stdio.h>

int main( void )
{
   FILE   *stream;
   fpos_t pos;
   char   buffer[20];

   if( fopen_s( &stream, "crt_fgetpos.txt", "rb" ) ) {
      perror( "Trouble opening file" );
      return -1;
   }

   // Read some data and then save the position.
   fread( buffer, sizeof( char ), 8, stream );
   if( fgetpos( stream, &pos ) != 0 ) {
      perror( "fgetpos error" );
      return -1;
   }

   fread( buffer, sizeof( char ), 13, stream );
   printf( "after fgetpos: %.13s\n", buffer );

   // Restore to old position and read data
   if( fsetpos( stream, &pos ) != 0 ) {
      perror( "fsetpos error" );
      return -1;
   }

   fread( buffer, sizeof( char ), 13, stream );
   printf( "after fsetpos: %.13s\n", buffer );
   fclose( stream );
}

Input: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Output crt_fgetpos.txt

after fgetpos: gets a stream
after fsetpos: gets a stream

Baca juga

Streaming I/O
fsetpos