C/Biblioteka standardowa

Z Wikibooks, biblioteki wolnych podręczników.
< C
Skocz do: nawigacji, wyszukiwania

Spis treści

[edytuj] Czym jest biblioteka?

Bibliotekę w języku C stanowi zbiór skompilowanych wcześniej funkcji, który można łączyć z programem. Biblioteki tworzy się, aby udostępnić zbiór pewnych "wyspecjalizowanych" funkcji do dyspozycji innych programów. Tworzenie bibliotek jest o tyle istotne, że takie podejście znacznie ułatwia tworzenie nowych programów. Łatwiej jest utworzyć program w oparciu o istniejące biblioteki, niż pisać program wraz ze wszystkimi potrzebnymi funkcjami[1].

[edytuj] Po co nam biblioteka standardowa?

W którymś z początkowych rozdziałów tego podręcznika napisane jest, że czysty język C nie może zbyt wiele. Tak naprawdę, to język C sam w sobie praktycznie nie ma mechanizmów do obsługi np. wejścia-wyjścia. Dlatego też większość systemów operacyjnych posiada tzw. bibliotekę standardową zwaną też biblioteką języka C. To właśnie w niej zawarte są podstawowe funkcjonalności, dzięki którym twój program może np. napisać coś na ekranie.

[edytuj] Jak skonstruowana jest biblioteka standardowa?

Zapytacie zapewne, jak biblioteka standardowa realizuje te funkcje, skoro sam język C tego nie potrafi. Odpowiedź jest prosta - biblioteka standardowa nie jest napisana w samym języku C. Ponieważ C jest językiem tłumaczonym do kodu maszynowego, to w praktyce nie ma żadnych przeszkód, żeby np. połączyć go z językiem niskiego poziomu, jakim jest np. asembler. Dlatego biblioteka C z jednej strony udostępnia gotowe funkcje w języku C, a z drugiej za pomocą niskopoziomowych mechanizmów[2] komunikuje się z systemem operacyjnym, który wykonuje odpowiednie czynności.

[edytuj] Gdzie są funkcje z biblioteki standardowej?

Pisząc program w języku C używamy różnego rodzaju funkcji, takich jak np. printf. Nie jesteśmy jednak ich autorami, mało tego nie widzimy nawet deklaracji tych funkcji w naszym programie. Pamiętacie program "Hello world"? Zaczynał on się od takiej oto linijki:

#include <stdio.h>

linijka ta oznacza: "w tym miejscu wstaw zawartość pliku stdio.h". Nawiasy "<" i ">" oznaczają, że plik stdio.h znajduje się w standardowym katalogu z plikami nagłówkowymi. Wszystkie pliki z rozszerzeniem h są właśnie plikami nagłówkowymi. Wróćmy teraz do tematu biblioteki standardowej. Każdy system operacyjny ma za zadanie wykonywać pewne funkcje na rzecz programów. Wszystkie te funkcje zawarte są właśnie w bibliotece standardowej. W systemach z rodziny UNIX nazywa się ją LibC (biblioteka języka C). To tam właśnie znajduje się funkcja printf, scanf, puts i inne.

Oprócz podstawowych funkcji wejścia-wyjścia, biblioteka standardowa udostępnia też możliwość wykonywania funkcji matematycznych, komunikacji przez sieć oraz wykonywania wielu innych rzeczy.

[edytuj] Jeśli biblioteka nie jest potrzebna...

Czasami korzystanie z funkcji bibliotecznych oraz standardowych plików nagłówkowych jest niepożądane np. wtedy, gdy programista pisze swój własny system operacyjny oraz bibliotekę do niego. Aby wyłączyć używanie biblioteki C w opcjach kompilatora GCC możemy dodać następujące argumenty:

-nostdinc -fno-builtin

[edytuj] Opis funkcji biblioteki standardowej

Podręcznik C na Wikibooks zawiera opis dużej części biblioteki standardowej C:

W systemach uniksowych możesz uzyskać pomoc dzięki narzędziu man, przykładowo pisząc:

man printf

[edytuj] Uwagi

Programy w języku C++ mogą dokładnie w ten sam sposób korzystać z biblioteki standardowej, ale zalecane jest, by robić to raczej w trochę odmienny sposób, właściwy dla C++. Szczegóły w podręczniku C++.

Przypisy

  1. Początkujący programista zapewne nie byłby w stanie napisać nawet funkcji printf.
  2. Takich jak np. wywoływanie przerwań programowych.
Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Drukuj lub eksportuj
Narzędzia
W innych językach