MEMCHR(3) | Podręcznik programisty Linuksa | MEMCHR(3) |
memchr, memrchr, rawmemchr - szukanie znaku w pamięci
#include <string.h>
void *memchr(const void *s, int c, size_t n);
void *memrchr(const void *s, int c, size_t n);
void *rawmemchr(const void *s, int c);
memrchr(), rawmemchr(): _GNU_SOURCE
Funkcja memchr() skanuje pierwsze n bajtów obszaru pamięci wskazywanego przez s w poszukiwaniu pierwszego wystąpienia znaku c. Zarówno c, jak i bajty pamięci wskazywane przez s są interpretowane jako unsigned char.
Funkcja memrchr()jest podobna do funkcji memchr(), z tym wyjątkiem, że poszukuje wstecz od końca n bajtów wskazywanych przez s, zamiast przeszukiwać do przodu od początku.
Funkcja rawmemchr() jest podobna do memchr(): zakłada (to jest: programista jest pewny), że w znak c występuje gdzieś w obszarze pamięci zaczynającym się w miejscu wskazywanym przez s i przeprowadza zoptymalizowane wyszukiwanie znaku c (tj. nie używa licznika do zawężenia obszaru przeszukiwania). Jeśli c nie występuje, to wynik jest nieprzewidywalny. Następujące wywołanie jest szybkim sposobem wyszukania bajtu null kończącego łańcuch znaków:
char *p = rawmemchr(s, '\0');
Funkcje memchr() i memrchr() zwracają wskaźnik do pasującego bajtu lub NULL, jeżeli znak nie został znaleziony w podanym obszarze pamięci.
Funkcja rawmemchr() zwraca wskaźnik do pasującego bajtu, jeśli taki zostanie znaleziony. W przeciwnym wypadku wynik funkcji jest nieokreślony.
rawmemchr() się po raz pierwszy pojawiła w wersji 2.1 biblioteki glibc.
memrchr() się po raz pierwszy pojawiła w wersji 2.2 biblioteki glibc.
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs | Atrybut | Wartość |
memchr(), memrchr(), rawmemchr() | Bezpieczeństwo wątkowe | MT-Safe |
memchr(): POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
Funkcja memrchr() jest rozszerzeniem GNU dostępnym od wersji 2.1.91 biblioteki glibc.
Funkcja rawmemchr() jest rozszerzeniem GNU dostępnym od wersji 2.1 biblioteki glibc.
bstring(3), ffs(3), index(3), memmem(3), rindex(3), strchr(3), strpbrk(3), strrchr(3), strsep(3), strspn(3), strstr(3), wmemchr(3)
Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Jarosław Beczek <bexx@poczta.onet.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.
6 marca 2019 r. |