DODATEK B BIBLIOTEKA STANDARDOWA
double strtod(const char *s, char **endp)
Funkcja strtod przekształca początkowe znaki tekstu s na wartość typu double (wiodące białe znaki są ignorowane). Jeśli argument endp jest różny od NULL, funkcja wstawia pod wskazany adres wskaźnik do dalszej, nie przekształconej części tekstu s. W przypadku nadmiaru funkcja zwraca HUGE_VAL z właściwym znakiem; w przypadku niedomiaru funkcja zwraca zero. W obu przypadkach wstawia ERANGE do zmiennej ermo.
long strtol(const char *s, char **endp, int base)
Funkcja strtol przekształca początkowe znaki tekstu s na wartość typu long (wiodące białe znaki są ignorowane). Jeśli argument endp jest różny od NULL, funkcja wstawia pod wskazany adres wskaźnik do dalszej, nie przekształconej części tekstu s. Jeśli wartość argumentu base (podstawa) zawiera się w przedziale między 2 i 36, to przekształcenia dokonuje się przy założeniu, że tekst wejściowy zawiera liczbę zapisaną przy tej podstawie. Gdy base równa się zero, wówczas podstawa zależy od postaci liczby zapisanej w s: jeśli liczba rozpoczyna się znakiem 0, za podstawę przyjmuje się 8; jeśli rozpoczyna się od'0x lub 0X, za podstawę przyjmuje się 16; w pozostałych przypadkach przyjmuje się 10. Niezależnie od podstawy, litery reprezentują „cyfry” między 10 a base-1; przy podstawie 16 dopuszcza się przedrostek 0x lub 0X. W przypadku nadmiaru funkcja zwraca stałą LONG_MAX lub LONG_MIN (w zależności od znaku wyniku), a errno otrzymuje wartość ERANGE.
unsigned long strtoul(const char *s, char **endp, int base)
Funkcja strtoul działa tak samo, jak strtol, przy czym wynik jest typu unsigned long, a w przypadku błędu zwracaną wartością jest ULONG_MAX.
int rand(void)
Funkcja rand zwraca pseudolosową liczbę całkowitą z przedziału między
• 0 i RAND_MAX. Wartość RAND_MAX wynosi co najmniej 32767.
void srand(unsigned int seed)
Argument seed funkcji srand jest zarodkiem dla nowego ciągu liczb pseudoloso-wych. Początkowy zarodek jest równy 1.
void *calloc(size_t nobj, size_t size)
Funkcja calloc zwraca wskaźnik do obszaru pamięci przeznaczonego dla tablicy złożonej z nobj elementów, każdy o rozmiarze size. Funkcja zwraca NULL, jeśli to polecenie nie może być wykonane. Obszar jest inicjowany zerami.
Funkcja malloc zwraca wskaźnik do obszaru pamięci przeznaczonego dla obiektu o rozmiarze size. Funkcja zwraca NULL, jeśli to polecenie nie może być wykonane. Obszar nie jest inicjowany.
Funkcja realloc zmienia rozmiar obiektu wskazanego przez p na wartość określoną przez size. Zawartość obiektu nie ulegnie zmianie w jego początkowej części o rozmiarze równym mniejszemu z rozmiarów: starego i nowego. Jeśli nowy rozmiar jest większy, dodatkowy obszar pamięci nie jest inicjowany. Funkcja zwraca wskaźnik do nowego obszaru lub NULL, jeśli to polecenie nie może być wykonane; w tym przypadku zawartość *p nie ulega zmianie.
Funkcja free zwalnia obszar pamięci wskazany przez p; nie robi nic, jeżeli p równa się NULL. Argument p musi być wskaźnikiem do obszaru uprzednio przydzielonego przez jedną z funkcji: calloc, malloc lub realloc.
Funkcja abort powoduje nienormalne zakończenie programu, podobnie jak raise(SIGABRT).
Funkcja exit powoduje normalne zakończenie programu. Funkcje zarejestrowane przez atexit są wywoływane w kolejności odwrotnej do ich rejestracji, otwarte pliki są aktualizowane, a otwarte strumienie - zamykane. Sterowanie wraca do środowiska programu. Od implementacji zależy to, jak wartość argumentu status jest przekazywana środowisku; przyjmuje się jednak, że wartość równa zero oznacza szczęśliwe zakończenie programu. Można także użyć wartości EXIT_SUCCESS (sukces) i EXIT_FAILURE (porażka).
Funkcja atexit rejestruje funkcję fen, którą należy wykonać przy normalnym zakończeniu programu. Jeśli rejestracja nie jest możliwa, funkcja atexit zwraca wartość różną od zera.
Funkcja system przekazuje tekst zawarty w s jako polecenie do wykonania przez środowisko programu. Jeśli s jest równe NULL, funkcja zwraca wartość różną od zera wówczas, gdy w środowisku istnieje interpretator poleceń. Jeśli sjest różne od NULL, zwracana przez funkcję wartość zależy od implementacji.
22 Język ANSI C 337