Bildirim
int fsetpos(FILE *stream, const fpos_t *pos);
Açıklama
Stream parametresi ile gösterilen akışın aktif dosya konumunu pos parametre değeri ile gösterilen değere ayarlar.
Parametreler
stream: Aktif konumu değiştirilecek akışı tanımlayan FILE nesnesi işaretçisidir.
pos: Dosya konum göstergesinin ayarlanacağı fpos_t değişken işaretçidir.
Dönüş değeri
Başarı durumunda 0, aksi takdirde sıfır olmayan bir değer geri döndürülür.
Örnek
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
fpos_t pos;
char cdizi[11];
if ((fp = fopen ("dosya.txt", "w+")) == NULL) {
printf("Dosya açma hatası!");
exit(1);
}
fgetpos(fp, &pos);
printf("Dosyanın aktif konumu: %ld\n", ftell(fp));
fputs("Bilgisayar", fp);
printf("Dosyanın aktif konumu: %ld\n", ftell(fp));
fsetpos(fp, &pos); /* Dosya konumunu başa alır. */
printf("Dosyanın aktif konumu: %ld\n", ftell(fp));
fgets(cdizi, 11, fp);
printf("Karakter dizisi: %s\n", cdizi);
fclose(fp);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
Dosyanın aktif konumu: 0 Dosyanın aktif konumu: 10 Dosyanın aktif konumu: 0 Karakter dizisi: Bilgisayar
Yukarıdaki program, yazma ve okuma modunda (w+) açtığı dosyanın konumunu fgetpos() fonksiyonu ile alır. Fputs() fonksiyonu ile bir karakter dizisini dosyaya yazdıktan sonra fsetpos() fonksiyonu ile dosya konumunu pos değişken değerini kullanarak programın başındaki konumuna getirir ve fgets() fonksiyonu ile dosyadan okuduğu karakter dizisini ekrana yazar.