Operacje na plikach binarnych w C

Operacje na plikach binarnych są niezbędne dla wielu aplikacji wymagających efektywnego przechowywania i odczytu danych, takich jak obrazy, dane audio, video, czy struktury danych. W przeciwieństwie do plików tekstowych, pliki binarne pozwalają na zapisywanie danych w ich natywnym formacie binarnym, co zazwyczaj jest bardziej wydajne pod względem przestrzeni i czasu dostępu. W tej lekcji omówimy podstawy pracy z plikami binarnymi w języku C, włączając otwieranie, czytanie, pisanie i zamykanie plików binarnych.

Przykład kodu w C: Zapis i odczyt struktury do/z pliku binarnego

#include <stdio.h>
#include <stdlib.h>

// Definicja struktury Pracownik
typedef struct {
    int id;
    char name[20];
    float salary;
} Employee;

int main() {
    Employee emp = {1, "Jan Kowalski", 5000.50}; // Inicjalizacja zmiennej typu Employee
    Employee empRead; // Zmienna do odczytu danych
    
    // Otwarcie pliku binarnego do zapisu
    FILE *file = fopen("employee.bin", "wb");
    if (file == NULL) {
        printf("Nie można otworzyć pliku.\n");
        exit(1);
    }
    
    // Zapis struktury do pliku
    fwrite(&emp, sizeof(Employee), 1, file);
    fclose(file); // Zamknięcie pliku po zapisie
    
    // Otwarcie pliku binarnego do odczytu
    file = fopen("employee.bin", "rb");
    if (file == NULL) {
        printf("Nie można otworzyć pliku.\n");
        exit(1);
    }
    
    // Odczyt struktury z pliku
    fread(&empRead, sizeof(Employee), 1, file);
    printf("ID: %d, Nazwisko: %s, Wynagrodzenie: %.2f\n", empRead.id, empRead.name, empRead.salary);
    
    fclose(file); // Zamknięcie pliku po odczycie
    
    return 0;
}
  • Definicja struktury Employee pozwala na grupowanie danych pracownika, takich jak ID, nazwisko i wynagrodzenie, w jednej strukturze danych.
  • Otwarcie pliku binarnego do zapisu ("wb") pozwala na zapis danych binarnych do pliku. Jeśli plik nie istnieje, zostanie utworzony.
  • Zapis struktury do pliku realizowany przez fwrite pozwala na bezpośredni zapis binarny danych struktury do pliku.
  • Otwarcie pliku binarnego do odczytu ("rb") umożliwia bezpośredni odczyt danych binarnych z pliku.
  • Odczyt struktury z pliku za pomocą fread umożliwia wczytanie danych z pliku binarnego do struktury w programie.

Podsumowanie

Operacje na plikach binarnych w języku C umożliwiają efektywne przechowywanie i odczyt danych w formacie binarnym. Dzięki temu, aplikacje mogą szybko przetwarzać duże ilości danych bez potrzeby konwersji do i z formatu tekstowego. Znajomość funkcji fopen, fwrite, fread i fclose jest kluczowa dla pracy z plikami binarnymi, co pozwala na tworzenie wydajnych i skalowalnych rozwiązań w wielu dziedzinach programowania.

 

Scroll to Top