w14 (3)


Funkcje narz¸ nagłówek Argument seed jest zarodkiem dla nowego ciagu liczb pseudolo-
edziowe: ¸
Plik nagłówkowy zawiera deklaracje funkcji sowych. Pocz¸ zarodek jest równy 1.
atkowy
słż¸ do przeksztaÅ‚cania liczb, przydzielania pami¸ i innych
acych eci
przydziaÅ‚ pami¸
eci
zadań.
double atof(const char *s) void *calloc(size_t nobj, size_t size)
rownowazna z
Zwraca wskaznik do obszaru pami¸ przeznaczonego dla ta-
eci
strtod(s,(char **)NULL)
blicy o nobj elementów, każdy o rozmiarze size. Obszar jest
inicjowany zerami.
int atoi(const char *s)
void *malloc(size_t size)
rownowazna z
(int) strtol(s, (char **)NULL, 10)
Obszar nie jest inicjowany.
long atol(const char *s) void *realloc(void *p, sizee_t size)
rownowazna z
strtol(s, (char **)NULL, 10)
void free(void *p)
double strtod(const char *s, char **endp)
void abort(void)
PrzeksztaÅ‚ca pocz¸ znaki s na wartość typu double
atkowe
(wiod¸ znaki biaÅ‚e s¸ ignorowane).
ace a
Powoduje nienormalne zakończenie programu, podobnie jak:
Jeżeli endp != NULL to funkcja wstawia wskaznik do nie
przeksztaÅ‚conej cz¸ tekstu s.
eści
raise(SIGABRT).
HUGE_VAL dla nadmiaru
Zwraca:
0 dla niedomiaru
void exit(status)
W obu przypadkach wstawia ERANGE do zmiennej errno.
Powoduje normalne zakończenie pro-
long strtol(const char *s, char **endp, int base)
gramu. Funkcje zarejestrowane
przez atexit s¸ wywoÅ‚ywane w kolejnoÅ›ci odwrotnej do
a
rejestracji, otwarte pliki s¸ aktualizowane, a otwarte strumienie
a
zamykane.
Działanie podobne jak wyżej, lecz zamiana na long. Argument
Od implementacji zależy, jak status jest przekazywany do śro-
base określa sposób transformacji:
dowiska.
od 2 do 36 liczba zapisana przy tej podstawie
0 decyduje postać liczby zapisanej w s:
0 na poczatku, to podstawa 8;
¸
0X lub 0X podstawa 16
int atexit(void (*fcn)(void))
w pozostałych przypadkach podstawa 10
Zwraca: LONG_MAX lub LONG_MIN w przypadku nadmiaru, a
Rejestruje fukcj¸ fcn, która należy wykonać przy normalnym za-
e ¸
errno otrzymuje wartość ERANGE.
kończeniu programu.
unsigned long strtoul
int system(const char *)
(const char *s, char **endp, int base)
Przykład:
Działa tak samo jak strtol, wynik typu unsigned long, a w
przypadku bÅ‚¸ zwraca ULONG_MAX.
edu
#include
#include
Generowanie liczb pseudolosowych
int main(void)
{
int rand(void)
printf("Za chwile uruchomimy interpreter polecen"
" i polecenie systemu!\n");
system("ls -lt");
return 0;
Zwraca pseudolosow¸ liczb¸ caÅ‚kowita z przedziaÅ‚u mi¸ 0 i
a e ¸ edzy
}
RAND_MAX, która wynosi co najmniej 32767.
void srand(unsigned int seed) char *getenv(const char *name)
Zwraca tekst zawarty w zmiennej środowiskowej name lub
NULL jeśli zmienna nie istnieje. void assert(int wyrazenie)
Przykład:
#include
Makro służace do diagnozowania programów. Jeśli przy wyko-
¸
#include
naniu
#include
#include
assert(wyrazenie)
#include
wartość wyrazenia jest równa zeru, to makro assert wypisze
int main(void)
do stderr komunikat postaci:
{
char *path, *ptr;
Assertion failed: wyrazenie, file Nazwa_pliku, line nn
int i = 0;
i wywoÅ‚a funkcj¸ abort w celu zakoÅ„czenia programu.
e
/* get the current path environment */
JeÅ›li przed wÅ‚¸ nagłówka assert.h>do pliku zródÅ‚o-
aczeniem
ptr = getenv("PATH");
wego zdefiniowano makro NDEBUG, to makro assert jest po-
mijane.
/* set up new path */
Przykład:
path = (char *) malloc(strlen(ptr)+15);
strcpy(path,"PATH=");
#include
strcat(path,ptr);
#include
strcat(path,";c:\\temp");
#include
/* replace the current path and
display current environment */ struct ITEM {
int key;
putenv(path);
while (environ[i]) int value;
};
printf("%s\n",environ[i++]);
return 0; /* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
}
assert(itemptr != NULL);
/* add item to list */
}
void *bsearch(const void *key, const void *base,
size_t n, size_t size,
int main(void)
int (*cmp)(const void *keyval, const void *datum))
{
additem(NULL);
return 0;
Przeglada uporz¸ a tablic¸ base[0] . . . base[n-1] zÅ‚ożon¸
¸ adkowan¸ e a
}
z elementów o rozmiarze size, w poszukiwaniu elementu odpo-
wiadajacemu obiektowi *key.
¸
Funkcja wskazywana przez cmp musi zwracać wartość
Zmienne listy argumentów: nagłówek
ujemn¸ gdy pierwszy argument (klucz szukania) jest mniejszy
a,
od drugiego (element tablicy), 0 , gdy równy, wartość dodatnia,
¸
Skoki odległe: nagłówek
gdy wi¸
ekszy.
Funkcja zwraca wskaznik do znalezionego elementu, albo
NULL.
int setjmp(jmp_buf env)
void longjmp(jmp_buf env, int val)
void qsort(void *base, size_t n, size_t size,
int (*comp) (const void *, const void *))
Sygnały: nagłówek
Porzadkuje tablic¸ base wporzadku rosn¸
¸ e ¸ acym.
Mechanizmy obsÅ‚ugi zdarzeÅ„ wyj¸
atkowych, np. sygnałów
przerwania nadesÅ‚anych z zewn¸ programu lub bÅ‚¸ w wy-
atrz edu
konaniu programu.
int abs(int)
long labs(int)
void (*signal(int sig, void (*handler)(int))(int)
div_t div(int num, int denom)
OkreÅ›la, w jaki sposób s¸ obsÅ‚ugiwane nadchodz¸ sygnaÅ‚y.
a ace
Jeśli argument handler Ma wartość SIG_DFL, to działanie do-
¸
Oblicza cz¸ caÅ‚kowit¸ i reszte z dzielenia num/denom. Wy- myÅ›lne zależne od implementacji, jeÅ›li SIGIGN, to sygnaÅ‚ bedzie
eść a ¸
zigonorowany, w pozostaÅ‚ych przypadkach wywoÅ‚uje si¸ wska-
e
niki wstawia do składowych quot i rem struktury typu div_t;
zan¸ fukcje z podanymrodzajemsygnaÅ‚u.
a ¸
skÅ‚adowe s¸ typu int.
a
Poniżej możliwe sygnały:
SIGABRT nienormalne zakończenie programu
ldiv_t ldiv(long num, long denom)
SIGFPE bÅ‚¸ arytmetyczny
ad
SIGILL zła postać funkcji
SIGINT ingerencja użytkownika (przerwanie)
J.w. dla typu long.
SIGSEGV nielegalne odwoÅ‚anie do pami¸
eci
SIGTERM żadanie zakończenia wykonywania
Diagnostyka: nagłówek
Funkcja signal zwraca poprzednia wartość argumentu han- Przekształca czas kalendarzowy *tp na czas południka zerowego.
¸
dler dla danego sygnaÅ‚u lub SIGERR w przypadku bÅ‚¸
edu.
JeÅ›li teraz wystapi sygnaÅ‚ sig, to najpierw przywraca si¸
¸ e
domyÅ›ln¸ akcje dla tego sygnaÅ‚u, a nast¸ wywoÅ‚uje wska- struct tm *localtime(const time_t *tp)
a ¸ epnie
zan¸ funkcj¸ obsÅ‚ugi tak, jakby nast¸ wywoÅ‚anie (*han-
a e apiło
dler)(sig). Po powrocie z funkcji obsÅ‚ugi program b¸ wzno-
edzie
wiony w miejscu, w którym nast¸ przerwanie sygnaÅ‚em.
apiło
Przekształca czas kalendarzowy *tp na czas lokalny.
size_t strftime(char *s, size_t *smax,
int raise(int sig)
const char *fmt, const struct tm *tp)
Funkcja raise wysyła do programu sygnał sig. W razie niepo-
PrzeksztaÅ‚ca dat¸ i czas zawarte w strukturze *tp w tekst i za-
e
wodzenia zwraca wartość różn¸ od zera.
a
pisuje w miejsce wskazane przez s. PrzeksztaÅ‚cenie odbywa si¸
e
na podstawie formatu fmt, analogicznego do formatu fprintf.
Obsługa daty i czasu: nagłówek
Przykład:
Składowe struktury tm:
int tm_sec; sekundy, które upÅ‚yn¸ po minu- #include
eły
cie (0,61) #include
int tm_min; minuty, które upÅ‚yn¸ po godzinie (0,59)
eły
#include
int tm_hour; godziny, które upÅ‚yn¸ od północy (0,23)
eły
int main(void)
int tm_mday; dzieÅ„ miesiça (1,31)
{
int tm_mon; mie_iace, które upÅ‚yn¸ od stycz-
eły
struct tm *time_now;
nia (0,11)
time_t secs_now;
int tm_year; lata, ktUe upÅ‚yn¸ od 1900 r.
eły
char str[80];
int tm_wday; dni, które upÅ‚yn¸ od niedzieli (0,6)
eły
tzset();
int tm_yday; dni, które upÅ‚yn¸ od pierwszego
eły
time(&secs_now);
stycznia (0,365)
time_now = localtime(&secs_now);
int tm_isdst; znacznik letniej zmiany czasu
strftime(str, 80,"It is %M minutes after %I"
" o clock (%Z) %A, %B %d 19%y",time_now);
printf("%s\n",str);
clock_t clock(void)
return 0;
}
Zwraca czas procesora wykorzystany przez program lub -1, gdy
Ograniczenia implementacji: nagłówki
nie może tego wykonać.
i
Wyrażenie clock()/CLOCKS_PER_SECdaje czas w sekundach.
Nagłówek zawiera definicje staÅ‚ych okreÅ›laj¸
acych
minimalne rozmiary typów całkowitych, a minimalne
time_t time(time_t *tp)
rozmiary typów rzeczywistych.
Zwraca aktualny czas kalendarzowy lub -1. Jeżeli tp jest różne
od NULL, to zwracana wartość jest wstawiana również do *tp.
double difftime(time_t time2, time_t time1)
Zwraca różnic¸ czasów wyrażon¸ w sekundach.
e a
time_t mktime(struct tm *tp)
Przekształca czas lokalny zawarty w strukturze *tp na czas ka-
lendarzowy w formacie używanym przez time.
Nast¸ cztery funkcje zwracaj¸ wskaznik do statycznego
epne a
obiektu, który może ulec zmianie na skutek innych wywołań tych
funkcji.
char *asctime(const struct tm *tp)
Przekształca czas zapisany w strukturze *tp na tekst:
Sun Jan 3 15:14:13 1988\n\0
char *ctime(const time_t *tp)
Przekształca czas kalendarzowy *tp na czas lokalny; równoważne
wywołaniu: asctime(localtime(tp)).
struct tm *gmtime(const time_t *tp)


Wyszukiwarka

Podobne podstrony:
W14 Kodowanie i Kryptografia kody cykliczne?le 6g
Antropologia kulturowa W14
DSaA W14 HuffmanCode Knapsack
w14 PSYCH
modrzynski w14 aktualne trendy w lesnictwie 2r
W14 Rynek Finansowy wydrukowane
w14
w14 3
w14
W14 sortowanie plików
anl1 w14 lato2009

więcej podobnych podstron