😈
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 Akses File
  • Contoh Penggunaan
  • 1. Membuka file untuk membaca ("r")
  • 2. Membuka file untuk menulis ("w")
  • 3. Membuka file untuk menambahkan ("a")
  • 4. Membuka file untuk membaca dan menulis ("r+", "w+", "a+")
  • 5. Menangani error saat membuka file
  1. Programming Language
  2. C
  3. Reference
  4. stdio.h

fopen()

Membuka file dalam C

Fungsi fopen() digunakan untuk membuka file dan mengembalikan pointer ke file (FILE *) yang akan digunakan untuk operasi file selanjutnya.

Sintaks

FILE *fopen(const char *filename, const char *mode);
  • filename âžœ Nama file yang ingin dibuka.

  • mode âžœ Mode akses file (r, w, a, dll.).

  • Mengembalikan FILE * jika berhasil, atau NULL jika gagal.

Mode Akses File

Mode
Keterangan

"r"

Membuka file untuk membaca (harus ada file-nya).

"w"

Membuka file untuk menulis (jika ada, akan dihapus; jika tidak ada, akan dibuat).

"a"

Membuka file untuk menambahkan (append) di akhir (jika tidak ada, dibuat).

"r+"

Membuka file untuk membaca dan menulis tanpa menghapus isinya.

"w+"

Membuka file untuk membaca dan menulis, tetapi menghapus isinya jika ada.

"a+"

Membuka file untuk membaca dan menulis, menulis hanya bisa di akhir file.

Contoh Penggunaan

1. Membuka file untuk membaca ("r")

#include <stdio.h>

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

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

    printf("File berhasil dibuka untuk membaca!\n");

    fclose(file);
    return 0;
}

Hasilnya:

# Jika file ditemukan
File berhasil dibuka untuk membaca!

# Jika file tidak ditemukan
File tidak ditemukan!
  • Jika data.txt ada, file dibuka untuk membaca.

  • Jika tidak ada, fopen() mengembalikan NULL, dan program menangani error.

  • fclose(file) menutup file setelah selesai digunakan.

2. Membuka file untuk menulis ("w")

#include <stdio.h>

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

    if (file == NULL) {
        printf("Gagal membuka file!\n");
        return 1;
    }

    printf("File berhasil dibuka untuk menulis!\n");

    fclose(file);
    return 0;
}

Hasilnya:

File berhasil dibuka untuk menulis!
  • Jika data.txt sudah ada, isinya akan dihapus.

  • Jika data.txt belum ada, file baru akan dibuat.

3. Membuka file untuk menambahkan ("a")

#include <stdio.h>

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

    if (file == NULL) {
        printf("Gagal membuka file!\n");
        return 1;
    }

    printf("File berhasil dibuka untuk menambahkan!\n");

    fclose(file);
    return 0;
}
  • Mode "a" tidak menghapus isi file, tetapi menulis di akhir file.

4. Membuka file untuk membaca dan menulis ("r+", "w+", "a+")

#include <stdio.h>

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

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

    printf("File berhasil dibuka untuk membaca dan menulis!\n");

    fclose(file);
    return 0;
}
  • Mode "r+" membutuhkan file sudah ada. Jika tidak ada, fopen() mengembalikan NULL.

  • Mode "w+" menghapus isi file sebelum menulis ulang.

  • Mode "a+" menulis hanya bisa di akhir file, tetapi tetap bisa membaca.

5. Menangani error saat membuka file

Jika fopen() gagal membuka file, kita harus menangani error agar program tidak crash.

#include <stdio.h>

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

    if (file == NULL) {
        perror("Error membuka file");
        return 1;
    }

    fclose(file);
    return 0;
}
  • perror("Error membuka file") akan mencetak pesan error standar dari sistem operasi.

Previousfclose()Nextfseek()

Last updated 2 months ago