Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty , a odwołanie do niego odbywa się poprzez nazwę.
Każdy plik ma skończoną długość, a informacja w nim zapisana jest ciągiem zer i jedynek (bitów). Ze względu na sposób interpretowania zawartości pliku wyróżnić możemy:
• pliki tekstowe - poszczególne bajty w pliku można zinterpretować jako dane alfanumeryczne (znaki), zapisane przy pomocy określonego kodowania (np. ASCII).
Takie pliki są "czytelne" dla człowieka po otwarciu w podstawowym edytorze tekstu (Notatnik, vim) lub bezpośrednim wypisaniu zawartości przy pomocy polecenia powłoki (type-Windows, cat-Linux).
• pliki binarne - poszczególne bajty w pliku mają dowolne wartości, niekoniecznie są interpretowalne jako znaki alfanumeryczne. Taki plik jest zazwyczaj nieczytelny dla człowieka po otwarciu w podstawowym edytorze tekstu.
Struktura informacji w plikach binarnych jest ściśle określona przez oprogramowanie, które zapisuje tego typu pliki (np. określoną strukturę ma plik MS Word, MS Excel itp.). Programista chcący odczytać i właściwie zinterpretować w swoim programie dane z pliku binarnego, powinien znać jego strukturę.
Standardowa biblioteka wejścia/wyjści a języka C udostępnia funkcje do operowania na plikach, tj. odczytu i zapisu danych z plików tekstowych i binarnych.
Sposób pracy z plikami w języku C jest następujący:
1. Otwarcie pliku o określonym nazwie w określonym trybie (odczyt, zapis, dopisywanie) Funkcja fopen, prototyp:
FILE *fopen(const char *filename, const char *mode);
Funkcja fopen otwiera plik, którego nazwa podana jest w pierwszym argumencie. Drugim jest łańcuch znaków zwierający litery oznaczające sposób otwarcia pliku:
• "r" - otwiera plik do czytania
• "r+" - otwiera plik do czytania i nadpisywania (aktualizacja)
• "w" - otwiera plik do nadpisywania (zamazuje starą treść)
• "w+" - otwiera plik do nadpisywania i czytania
• "a" - otwiera plik do dopisywania (jeśli plik nie istnieje, to jest tworzony)
• "a+" - otwiera plik do dopisywania i odczytu (jeśli plik nie istnieje, to jest tworzony)
• "t" - otwiera plik w trybie tekstowym
• "b" - otwiera plik w trybie binarnym Litery można ze sobą łączyć, np. "rwb" albo "wt".
Funkcja zwraca wskaźnik do pliku (FILE *) lub NULL, gdy pliku nie udało się otworzyć (nie istnieje, jest już otwarty w innym programie itp. .