ftell()
Mengetahui posisi saat ini dalam file dalam C
Fungsi ftell()
digunakan untuk mendapatkan posisi baca/tulis saat ini dalam file, dihitung dalam byte dari awal file. Fungsi ini sangat berguna untuk:
Mengetahui berapa banyak data yang sudah dibaca.
Menghitung ukuran file (dengan menggabungkannya dengan
fseek()
).
Sintaks
file
➜ Pointer ke file yang sudah dibuka (FILE *
).Mengembalikan posisi saat ini dalam file (dalam byte) jika berhasil.
Mengembalikan
-1L
jika terjadi kesalahan.
Contoh Penggunaan
Hello, World!
1. Menampilkan posisi saat ini
#include <stdio.h>
int main() {
FILE *file = fopen("data.txt", "r");
if (file == NULL) {
printf("File tidak ditemukan!\n");
return 1;
}
// Posisi awal harus 0
long posisiAwal = ftell(file);
printf("Posisi awal: %ld\n", posisiAwal);
// Membaca satu karakter, sehingga posisi bertambah 1
fgetc(file);
long posisiSetelahBaca = ftell(file);
printf("Posisi setelah membaca 1 karakter: %ld\n", posisiSetelahBaca);
fclose(file);
return 0;
}
Hasilnya:
Posisi awal: 0
Posisi setelah membaca 1 karakter: 1
2. Menggunakan ftell() untuk mengetahui ukuran file
Kita dapat memindahkan pointer ke akhir file dengan fseek()
lalu menggunakan ftell()
untuk mendapatkan ukuran file:
#include <stdio.h>
int main() {
FILE *file = fopen("data.txt", "r");
if (file == NULL) {
printf("File tidak ditemukan!\n");
return 1;
}
// Pindahkan pointer ke akhir file
fseek(file, 0, SEEK_END);
// Ukuran file adalah posisi akhir
long ukuran = ftell(file);
printf("Ukuran file: %ld byte\n", ukuran);
fclose(file);
return 0;
}
Hasilnya:
Ukuran file: 13 byte
Bagaimana ftell() Bekerja?
Posisi awal: Saat file baru dibuka untuk membaca, posisi adalah 0.
Setelah membaca data: Posisi akan bertambah sesuai dengan jumlah byte yang telah dibaca.
Setelah
fseek()
:ftell()
mengembalikan posisi baru yang telah ditentukan olehfseek()
.
Last updated