For faster navigation, this Iframe is preloading the Wikiwand page for Biblioteka standardowa języka C.

Biblioteka standardowa języka C

Biblioteka standardowa języka Cbiblioteka zawierająca podstawowe procedury języka C. Biblioteka ta jest częścią standardu języka C, początkowo regulowanego normą ANSI a obecnie normą ISO[1].

Wersje

[edytuj | edytuj kod]

Biblioteka standardowa języka C jest częścią standardu języka C, opublikowanego jako norma ISO/IEC 9989. Pierwszą wersją języka C ustandaryzowanego przez ISO była wersja ISO/IEC 9989:1990[2], bazująca bezpośrednio na poprzedzającym ją standardzie ANSI X3.159-1989[3]. Następnie standard odświeżano w roku 1999 (ISO/IEC 9989:1999[4], znana jako C99), potem w roku 2011 (ISO/IEC 9989:2011[5], znana jako C11) i w roku 2018 (ISO/IEC 9989:2018[1] – obecnie obowiązująca C18). Wraz z każdą wersją standardu języka rozszerzano również możliwości biblioteki standardowej – przykładowo, w wersji C99 dodano m.in. typ liczb zespolonych (nagłówek complex.h), a w wersji C11 dodano m.in. funkcje do manipulacji znakami w unikodzie (uchar.h). Obecnie obowiązującą wersją jest C18[1].

Funkcje biblioteki standardowej języka C

[edytuj | edytuj kod]

Biblioteka zawiera następujące bloki funkcjonalne (w nawiasie podano plik nagłówkowy, który trzeba załączyć by mieć dostęp do pożądanych funkcji):

  • wybór podstawowych funkcji wspomagających programowanie w języku, w tym procedury alokacji pamięci, funkcje pseudolosowe i podstawowe konwersje (<stdlib.h>) oraz definicje niektórych typów (<stddef.h>)
  • buforowane i formatowane funkcje wejścia i wyjścia, w tym funkcje z grupy printf (<stdio.h>)
  • procedury matematyczne, w tym podstawowe funkcje i stałe (<math.h>), liczby zespolone (<complex.h>), funkcje wspierające obsługę liczb zmiennopozycyjnych (<float.h>, <fenv.h>), generyczne makra dla funkcji matematycznych (<tgmath.h>)
  • procedury operowania na łańcuchach tekstowych (<string.h>)
  • badanie własności znaków i proste konwersje znakowe (<ctype.h>, <wctype.h>)
  • funkcje daty i czasu (<time.h>)
  • obsługa lokalizacji, m.in. sposób formatowania dat (<locale.h>)
  • definicje maksymalnych i minimalnych wartości dla wbudowanych typów całkowitych (<limits.h>)
  • wsparcie dla typów nieobecnych w czystym języku C: typy całkowite różnych długości (<inttypes.h>, <stdint.h>), typ boolowski (<stdbool.h>), wielobajtowe typy znakowe: (<wchar.h>, <uchar.h>)
  • obsługa wykonywania programu, w tym obsługa argumentów wywołania programu (<stdarg.h>), obsługa tzw. „dalekich skoków” (<setjmp.h>), wartości błędów zwracane przez funkcje (<errno.h>), obsługa funkcji, z których nie ma powrotu (<stdnoreturn.h>), obsługa sygnałów (<signal.h>) oraz obsługa wielowątkowości (<threads.h>) i operacje atomowe (<stdatomic.h>)
  • obsługa asercji (<assert.h>)
  • makra dot. operacji bitowych i logicznych zgodna z normą ISO 646 (<iso646.h>)
  • zarządzanie sposobem upakowania danych w pamięci (<stdalign.h>)

Standardowa biblioteka języka C nie definiuje następujących zestawów funkcji:

Tego typu funkcje zwykle są obecne bibliotekach języka C obecnych w systemach operacyjnych, jako rozszerzenie standardowej biblioteki. W systemach Unix biblioteki języka C (libc) typowo implementują interfejs POSIX, który m.in. rozszerza możliwości biblioteki o wyżej wymienione grupy funkcji.

Implementacje

[edytuj | edytuj kod]

Istnieje wiele implementacji biblioteki standardowej języka C. W systemach Unix i systemach uniksopodobnych biblioteka standardowa języka C jest częścią szerszej tzw. biblioteki języka C (w skrócie libc), która jest używana, bezpośrednio lub pośrednio, przez praktycznie każdy program, niezależnie od języka w jakim jest napisany. Realizacją biblioteki libc jest na przykład biblioteka GNU libc (aktualnie najnowsza jest wersja glibc 2.33, wydana 1 lutego 2021 roku[6]), używana m.in. w systemie GNU/Linux. Innym wariantem libc jest wersja BSD libc.

W systemie Windows, biblioteka standardowa języka C jest zaimplementowana jako część tzw. Universal C Runtime Libraries (UCRT)[7].

Istnieją także lekkie implementacje biblioteki standardowej języka C, jak np. diet libc czy uClibc, projektowane z myślą o urządzeniach przenośnych lub w celu stworzenia implementacji wolnej od historycznych zaszłości, którą będzie łatwiej rozwijać.

Za dosyć lekki wariant biblioteki standardowej języka C uchodzi biblioteka Bionic, która jest używana w systemie Android[8].

Zobacz publikacjęC/Biblioteka standardowa/Indeks tematyczny w Wikibooks

Zobacz również

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  1. a b c ISO/IEC 9899:2018 - Information technology -- Programming languages -- C. [dostęp 2019-06-11]. (ang.).
  2. ISO/IEC 9899:1990 - Programming languages - C [online], www.iso.org [dostęp 2019-06-13] (ang.).
  3. The Current C Programming Language Standard - ISO/IEC 9899:2018 (C18) - ANSI Blog [online], blog.ansi.org [dostęp 2019-06-13] (ang.).
  4. ISO/IEC 9899:1999 - Programming languages - C [online], www.iso.org [dostęp 2019-06-13] (ang.).
  5. ISO/IEC 9899:2011 - Information technology - Programming languages - C [online], www.iso.org [dostęp 2019-06-13] (ang.).
  6. The GNU C Library. [dostęp 2021-04-22]. (ang.).
  7. Materiały dotyczące narzędzia Visual Studio 2019, CRT Library Features [online], 17 czerwca 2019.
  8. Mathieu Devos, Bionic vs Glibc report, [w:] Raport semestralny dotyczący pracy magisterskiej, MIT, 2013–2014 [dostęp 2019-06-17] [zarchiwizowane z adresu 2014-03-22].
{{bottomLinkPreText}} {{bottomLinkText}}
Biblioteka standardowa języka C
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?