jako dodatkowy tekst podaje się zwykle nazwę programu Jest to wygodne zwłaszcza w sytuacji, kiedy pracuje równolegle wiele procesów', które wyrzucają komunikaty o błędach na tą samą konsolę.
6. Do czego służy zmienna errno?
W przypadku wystąpienia błędu większość funkcji bibliotecznych UNIXa wpisuje kod błędu do zmiennej globalnej errno. Kod błędu jest wartością typu int. Kody błędu są podane w postaci stałych symbolicznych. Powiązanie poszczególnych stałych symbolicznych z wartościami można znaleźć albo w man -s2 intro albo wpliku /uar/include/sys/errno. h
7. Jak sprawdzić czy wywołana funkcja biblioteczna wykonała się poprawnie?
Sprawdzamy jaką wartość zwróciła funkcja. Jak sprawdzić ?havc no idea
Funkcje w języku C mogą zwracać wartości różnych typów (char *, int, void itp ). Dla funkcji bibliotecznych UNDCa często stosuje się pewne reguły umowne:
-w przypadku funkcji zwracających wartości typu char * zwracany jest wskaźnik do miejsca w pamięci gdzie przechowywany jest znak (lub ci^t znaków) będący wynikiem wykonania fimkcji W przypadku błędu zwracany jest wskaźnik NULL.
-fimkcje zwracające wartości typu int często zwracają: wartość -1 w przypadku błędu
wartości różne od -1 w przypadku poprawnego wykonania
8. Jakie zmienne przechowują argumenty wywołania programu?
Pobranie argumentów, z jąkani został unichomiony proces jest możliwe, jeśli funkcja main została zadek lar owrana z
dwoma argumentami Pierwszy (zwykle nazywany arge - argument counter) będzie przechowywać liczbę
argumentów wywołania procesu, dnigi (zwykle nazywany argv - argument values) będzie zawierać tablicę
argumentów wywołania procesu. Poniżej przedstawiono dwa sposoby deklaracji tydi zmiennych.
linclude <stdio.h>
main(int arge, char *argv(j>
/•program*/
main(int arge, char **argv)
(
/•program*/
9. Jaka liczbę argumentów będzie tnial program test wywołany w następujący sposób: . test 3 2
Arge 2
Argv[0] test
Argv[1J 3
Argv12 J NULL
10. Jakie znasz sposoby dostępu do zmiennych środowiskowych?
Pełną listę zmiennych środowiskowych można odczytać w-programie na dwa sposoby:
- Deklarując dodatkowy argument ftuikeji main
main(int arge, char •argv[], char *envp[J)
W tym przypadku zadeklarowanie zmiennych arge oraz argv jest konieczne niezależnie od tego. czy przewiduje się w- programie korzystanie z argumentów wywołania czy nic.