DODATEK B BIBLIOTEKA STANDARDOWA
czytaniu ze strumienia. Dla każdego strumienia można wycofać tylko jeden znak. Nie można wycofać znacznika końca pliku EOF. Funkcja zwraca wycofany znak lub EOF w przypadku błędu.
size_t fread(void *ptr, size_t size, size_t nobj, FILE *stream)
Funkcja fread wczytuje ze strumienia stream do tablicy ptr co najwyżej nobj obiektów o rozmiarze size. Funkcja zwraca liczbę przeczytanych obiektów; ta liczba może być mniejsza od żądanej. Do zbadania stanu strumienia należy użyć funkcji feof i terror.
size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *stream)
Funkcja fwrite wypisuje nobj obiektów o rozmiarze size, pochodzących z tablicy ptr, do strumienia stream. Zwraca liczbę wypisanych obiektów, która w przypadku błędu jest mniejsza niż nobj.
int fseek(F!LE +stream, long offset, int origin)
Funkcja fseek wyznacza pozycję w strumieniu stream; następne czytanie lub pisanie będzie odnosić się do danych rozpoczynających się od nowej pozycji. Dla plików binarnych nowa pozycja wypada w miejscu oddalonym o offset znaków od punktu odniesienia origin, który może mieć wartości: SEEK_SET (początek pliku), SEEK_CUR (bieżąca pozycja) lub SEEK_END (koniec pliku). Dla plików tekstowych wartość offset musi być równa zeru lub wartości zwróconej przez funkcję ftell (w tym przypadku origin musi się równać SEEK_SET). Funkcja fseek zwraca wartość różną od zera w przypadku błędu.
long ftell(FILE *stream)
Funkcja ftell zwraca wartość bieżącej pozycji dla strumienia stream lub -1L w przypadku błędu.
void rewind(FILE *stream)
Wywołanie rewind(fp) jest równoważne z ciągiem wywołań fseek(fp, OL, SEEK_SET); clearerr(fp).
int fgetpos(FILE *stream, fpos_t *ptr)
Funkcja fgetpos zapamiętuje bieżącą pozycję strumienia stream w miejscu wskazanym przez *ptr. Z tej wartości można później skorzystać w funkcji fsetpos. Typ
B2 KLASYFIKOWANIE ZNAKÓW: NAGŁÓWEK <CTYPE.H>
fpos_t jest odpowiednim typem obiektu do przechowania takiej wartości. W przypadku błędu funkcja fgetpos zwraca wartość różną od zera.
int fsetpos(FILE *stream, const fpos_t *ptr)
Funkcja fsetpos ustawia bieżącą pozycję strumienia stream według wartości zapamiętanej przez funkcję fgetpos w miejscu wskazanym przez *ptr. W przypadku błędu funkcja fsetpos zwraca wartość różną od zera.
Wiele funkcji bibliotecznych ustawia znaczniki stanu dla strumieni po napotkaniu końca pliku lub gdy wystąpi błąd. Te znaczniki mogą być ustawiane i sprawdzane jawnie. Dodatkowo, wartością wyrażenia całkowitego errno (zadeklarowanego w <errno.h>) może być numer błędu, który bliżej określa ostatnio napotkany błąd.
void clearerr(FILE *stream)
Funkcja clearerr kasuje znaczniki końca pliku i błędu dla strumienia stream. int feof(FILE *stream)
Funkcja feof zwraca wartość różną od zera w przypadku, gdy jest ustawiony znacznik końca pliku dla strumienia stream.
int ferror(FILE *stream)
Funkcja ferror zwraca wartość różną od zera w przypadku, gdy jest ustawiony znacznik błędu dla strumienia stream.
void perror(const char *s)
Wywołanie perror(s) wypisuje tekst z tablicy s i zależny od implementacji komunikat o błędzie odpowiadający wartości errno. Działanie funkcji można przedstawić jako:
fprintf(stderr, ”%s: %s\n”, s, "komunikat o błędzie”)
Patrz również: strerror w p. B3.
Nagłówek <ctype.h> zawiera deklaracje funkcji służących do klasyfikowania znaków. We wszystkich funkcjach argument c jest typu int o wartości albo równej EOF, albo wyrażalnej jako unsigned char, a wynik jest typu int. Funkcje zwracają wartość
331