Rechercher une page de manuel
errno
Langue: pl
Version: 2004-12-17 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
Sommaire
NAZWA
errno - numer ostatniego b³êduSK£ADNIA
#include <errno.h>OPIS
Plik nag³ówkowy <errno.h> definiuje zmienn± ca³kowit± errno, która jest ustawiana w razie b³êdu przez wywo³ania systemowe oraz pewne funkcje biblioteczne tak, aby zaznaczyæ, co posz³o ¼le. Warto¶æ ta jest istotna tylko gdy wywo³anie zwróci³o b³±d (zwykle -1), ale funkcja biblioteczna, która zakoñczy³a siê sukcesem, tak¿e mo¿e zmieniæ errno.Czasami, gdy -1 jest tak¿e poprawn± warto¶ci± zwracan±, aby wykryæ b³êdy nale¿y przed wywo³aniem wyzerowaæ errno.
errno jest definiowana przez standard ISO C jako modyfikowalna l-warto¶æ typu int, które nie mo¿e zostaæ jawnie zadeklarowana; errno mo¿e byæ makrem. Warto¶æ errno jest lokalna w obrêbie w±tku, jej zmiana w jednym w±tku nie wp³ywa na warto¶æ w innym.
Wszystkie poprawne numery b³êdów s± ró¿ne od zera, funkcja biblioteczna nigdy nie przypisuje errno zera. Ka¿dej nazwie b³êdu okre¶lonej przez POSIX.1 musi odpowiadaæ inna warto¶æ z wyj±tkiem EAGAIN i EWOULDBLOCK, które mog± mieæ tê sam± warto¶æ.
POSIX.1 (wydanie z 2001 roku) wyszczególnia nastêpuj±ce symboliczne nazwy b³êdów. Dwie z nich EDOM oraz ERANGE s± zawarte tak¿e w standardzie ISO C. Pierwsza poprawka ISO C definiuje dodatkowy numer b³êdu EILSEQ dla kodowania b³êdów w wielobajtowych lub szerokich znakach.
- E2BIG
- Lista argumentów za d³uga
- EACCES
- Brak dostêpu
- EADDRINUSE
- Adres jest u¿ywany
- EADDRNOTAVAIL
- Adres niedostêpny
- EAFNOSUPPORT
- Niewspierana rodzina adresów
- EAGAIN
- Zasoby chwilowo niedostêpne
- EALREADY
- Po³±czenie trwa
- EBADF
- B³êdny deskryptor pliku
- EBADMSG
- B³êdny komunikat
- EBUSY
- Zasób zajêty
- ECANCELED
- Operacja anulowana
- ECHILD
- Brak procesów potomnych
- ECONNABORTED
- Po³±czenie przerwane
- ECONNREFUSED
- Odmowa po³±czenia
- ECONNRESET
- Po³±czenie zrestartowane
- EDEADLK
- Unikniêto zakleszczenia zasobów
- EDESTADDRREQ
- Wymagany jest adres docelowy
- EDOM
- B³±d dziedziny
- EDQUOT
- Zarezerwowane
- EEXIST
- Plik istnieje
- EFAULT
- B³êdny adres
- EFBIG
- Plik jest za du¿y
- EHOSTUNREACH
- Host jest nieosi±galny
- EIDRM
- Usuniêto identyfikator
- EILSEQ
- Nieprawid³owa kolejno¶æ bajtów
- EINPROGRESS
- Operacja jest ju¿ wykonywana
- EINTR
- Przerwane wywo³anie funkcji
- EINVAL
- Z³y argument
- EIO
- B³±d wej¶cia/wyj¶cia
- EISCONN
- Gniazdo jest po³±czone
- EISDIR
- Jest katalogiem
- ELOOP
- Za du¿o poziomów dowi±zañ symbolicznych
- EMFILE
- Za du¿o otwartych plików
- EMLINK
- Za du¿o dowi±zañ
- EMSGSIZE
- Nieodpowiednia d³ugo¶æ bufora komunikatów
- EMULTIHOP
- Zarezerwowane
- ENAMETOOLONG
- Za d³uga nazwa pliku
- ENETDOWN
- Sieæ jest wy³±czona
- ENETRESET
- Po³±czenie przerwane przez sieæ
- ENETUNREACH
- Sieæ jest niedostêpna
- ENFILE
- Za du¿o otwartych plików w systemie
- ENOBUFS
- Brak dostêpnej przestrzeni buforów
- ENODATA
- Brak komunikatów w nag³ówku czytanej kolejki STREAM
- ENODEV
- Nie ma takiego urz±dzenia
- ENOENT
- Nie ma takiego pliku ani katalogu
- ENOEXEC
- B³êdny format pliku wykonywalnego
- ENOLCK
- Brak dostêpnych blokad
- ENOLINK
- Zarezerwowane
- ENOMEM
- Brak miejsca
- ENOMSG
- Brak komunikatów zadanego rodzaju
- ENOPROTOOPT
- Protokó³ jest niedostêpny
- ENOSPC
- Brak miejsca na urz±dzeniu
- ENOSR
- Brak zasobów STREAM
- ENOSTR
- To nie jest STREAM
- ENOSYS
- Niezaimplementowana funkcja
- ENOTCON
- Gniazdo nie jest po³±czone
- ENOTDIR
- To nie jest katalog
- ENOTEMPTY
- Katalog nie jest pusty
- ENOTSOCK
- To nie jest gniazdo
- ENOTSUP
- Niedostêpne
- ENOTTY
- Nieodpowiednia operacja kontroli wej¶cia/wyj¶cia
- ENXIO
- Brak urz±dzenia lub adresu
- EOPNOTSUPP
- Operacja niedozwolona na gnie¼dzie
- EOVERFLOW
- Warto¶æ za du¿a dla typu danych
- EPERM
- Operacja niedozwolona
- EPIPE
- Przerwany potok
- EPROTO
- B³±d protoko³u
- EPROTONOSUPPORT
- Protokó³ nie wspierany
- EPROTOTYPE
- Niew³a¶ciwy rodzaj protoko³u dla gniazda
- ERANGE
- Rezultat zbyt du¿y
- EROFS
- System plików wy³±cznie do odczytu
- ESPIPE
- Nieprawid³owe przesuniêcie
- ESRCH
- Nie ma takiego procesu
- ESTALE
- Zarezerwowane
- ETIME
- Timeout ioctl() dla STREAM
- ETIMEDOUT
- Operacja przeterminowana
- ETXTBSY
- Plik tekstowy jest zajêty
- EWOULDBLOCK
- Operacja blokuj±ca (mo¿e to byæ ta sama warto¶æ, co dla EAGAIN)
- EXDEV
- Nieprawid³owe dowi±zanie
UWAGI
Powszechnym b³êdem jest robienie-
if (somecall() == -1) { printf("somecall() zwróci³o b³±d\n"); if (errno == ...) { ... } }
-
if (somecall() == -1) { int errsv = errno; printf("somecall() zwróci³o b³±d\n"); if (errsv == ...) { ... } }
Powszechnie w tradycyjnym C deklarowa³o siê rêcznie errno (np. extern int errno) zamiast w³±czaæ plik <errno.h>. Nie rób tego. To nie bêdzie dzia³a³o z nowoczesnymi wersjami biblioteki C. Jednak¿e na (bardzo) starych systemach Unix, <errno.h> mo¿e nie istnieæ i ta deklaracja bêdzie potrzebna,
ZOBACZ TAK¯E
perror(3), strerror(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre