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 Employeepozwala 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 fwritepozwala 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ą freadumoż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.
