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.