😈
ReverseMe
  • Introduction
  • References
  • ReverseMe
    • Introduction
      • What is Reverse Engineering?
      • Legality of Reverse Engineering
      • Reverse Engineering Communities
  • Programming Language
    • C
      • Basic
        • Pointer
        • Casting
      • Reference
        • stdio.h
          • fclose()
          • fopen()
          • fseek()
          • ftell()
          • fgetc()
          • fgets()
          • fread()
          • fprintf()
          • fwrite()
          • printf()
          • putchar()
          • puts()
          • sprintf()
          • snprintf()
        • stdlib.h
          • malloc()
          • calloc()
          • realloc()
          • free()
          • rand()
          • srand()
        • string.h
          • strcat()
          • strncat()
          • strcmp()
          • strncmp()
          • strcpy()
          • strncpy()
        • time.h
          • time()
  • Reversing Fundamentals
    • Stripped and Unstripped
  • Tools
    • file
    • strings
    • ltrace
    • ghidra
  • CTF Writeups
    • HackTheBox Challenges
      • Baby RE
      • You Cant C Me
  • ABOUT ME
    • Mail
    • LinkedIn
    • GitHub
Powered by GitBook
On this page
  • Sintaks
  • Mode origin dalam fseek()
  • Contoh Penggunaan
  • 1. Melompat ke posisi tertentu dalam file
  • 2. Membaca data dari posisi tertentu
  • 3. Menggunakan SEEK_CUR untuk melompati bagian tertentu
  1. Programming Language
  2. C
  3. Reference
  4. stdio.h

fseek()

Memindahkan posisi dalam file dalam C

Fungsi fseek() digunakan untuk memindahkan posisi baca/tulis (file pointer) ke lokasi tertentu dalam file. Ini berguna untuk melompat ke bagian tertentu dalam file saat membaca atau menulis data.

Sintaks

int fseek(FILE *file, long offset, int origin);
  • file âžœ Pointer ke file yang sudah dibuka (FILE *).

  • offset âžœ Jumlah byte yang ingin dipindahkan.

  • origin âžœ Posisi referensi awal (SEEK_SET, SEEK_CUR, SEEK_END).

  • Mengembalikan 0 jika sukses, atau -1 jika gagal.

Mode origin dalam fseek()

Mode
Deskripsi

SEEK_SET

Memulai dari awal file (offset dihitung dari awal).

SEEK_CUR

Memulai dari posisi saat ini dalam file.

SEEK_END

Memulai dari akhir file (offset dihitung mundur).

Contoh Penggunaan

data.txt
Hello, World!

1. Melompat ke posisi tertentu dalam file

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "r");

    if (file == NULL) {
        printf("File tidak ditemukan!\n");
        return 1;
    }

    fseek(file, 5, SEEK_SET);  // Lompat ke byte ke-5 dari awal file

    char c = fgetc(file);  // Baca karakter di posisi baru
    printf("Karakter di posisi ke-5: %c\n", c);

    fclose(file);
    return 0;
}

Hasilnya:

  • fseek(file, 5, SEEK_SET); âžœ Memindahkan posisi baca ke byte ke-5 dari awal.

2. Membaca data dari posisi tertentu

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "r");

    if (file == NULL) {
        printf("File tidak ditemukan!\n");
        return 1;
    }

    fseek(file, -6, SEEK_END);  // Lompat ke 6 byte sebelum akhir file

    char c = fgetc(file);
    printf("Karakter 6 byte sebelum akhir: %c\n", c);

    fclose(file);
    return 0;
}
  • fseek(file, -6, SEEK_END); âžœ Bergerak mundur 6 byte dari akhir file.

  • Membaca karakter di posisi itu dengan fgetc().

3. Menggunakan SEEK_CUR untuk melompati bagian tertentu

#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "r");

    if (file == NULL) {
        printf("File tidak ditemukan!\n");
        return 1;
    }

    fgetc(file); // Baca karakter pertama
    fseek(file, 2, SEEK_CUR);  // Lompat 2 karakter setelah posisi saat ini
    char c = fgetc(file);
    
    printf("Karakter setelah lompat: %c\n", c);

    fclose(file);
    return 0;
}
  • Membaca 1 karakter dulu (fgetc(file)).

  • fseek(file, 2, SEEK_CUR); âžœ Lompat 2 karakter ke depan dari posisi saat ini.

Previousfopen()Nextftell()

Last updated 2 months ago

➜ Membaca karakter setelah fseek().

fgetc(file);