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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk