- ANSI C
- » Variable handling
- » Miscellaneous
- » POSIX
- » Date/Time
- » Math
- » menu_code_ansiccode_strings
- » PCRE
- » Arrays
- » Classes
- » Program execute
- » Directories
- » Filesystem
- » Memory
- » GD
- » Network
- » Sockets
- PERL
- PHP
- JavaScript
CONTENT
- CHANGES
Szukaj
#top Strings¶
- Strings
- Makefile
- Makefile (linux)
- Makefile.obsd
- Makefile.fbsd
- Makefile.sol
- Makefile.beos
- Makefile.win
- Predefined Constants
- CONST
- Datatypes / MACROS
- __ctype_b_loc
- __gnuc_va_list
- _ISbit
- _IS*
- __isctype
- _G_va_list
- size_t
- struct lconv
- Strings Functions
- basename
- dirname
- getchar
- gets
- index
- isalnum
- isalpha
- isblank
- iscntrl
- isdigit
- isgraph
- islower
- isprint
- ispunct
- isspace
- isupper
- isxdigit
- localeconv
- memccpy
- memchr
- memcmp
- memcpy
- memmem
- memmove
- mempcpy
- memrchr
- memset
- printf
- putchar
- puts
- rawmemchr
- rindex
- scanf
- snprintf
- sprintf
- sscanf
- strcasestr
- strcat
- strchr
- strcmp
- strcoll
- strcpy
- strcspn
- strdup
- strerror
- strfmon
- strlen
- strncasecmp
- strncat
- strncmp
- strncpy
- strndup
- strnlen
- strpbrk
- strrchr
- strsep
- strsignal
- strspn
- strstr
- strtok
- strverscmp
- strxfrm
- tolower
- toupper
- vprintf
- vscanf
- vsnprintf
- vsprintf
- vsscanf
code / ansic / strings
#top Makefile¶
Dla ułatwienia korzystania z przykładów został utworzony jeden zbiorczy plik
Makefile
kompilujący przykłady użycia poniżej wymienionych funkcji związanych z na zmiennych.Poniższe pliki Makefile zakładają obecność wszystkich plików przykładów, w przypadku chęci kompilacji za pomocą Makefile tylko wybranego przykładu należy zakomentować w pliku Makefile ostatnią pozycję zawierającą listę wszystkich targetów do wykonania
make: $(GETCHAR) ...
, a następnie odkomentować powyżej komendę make zawierającą nazwę targetu dla bieżącego przykładu, np: w przypadku chęci kompilacji tylko przykładu getchar
należy zakomentować ostatnią pozycję rozpoczynającą się od make: $(GETCHAR) ...
(wstawić na początku przed make znak #
), a następnie odkomentować pozycję: #make: $(GETCHAR)
(usunąć znak #
).#top Makefile (linux)¶
SELECT ALL
# Project: Project # Makefile created GCC = gcc INCS = -DHAVE_BASENAME=1 -DHAVE_MEMMEM=1 -DHAVE_MEMPCPY=1 -DHAVE_MEMRCHR=1 -DHAVE_STRERROR=1 -DHAVE_STRNCASECMP=1 -DHAVE_STRNCASESTR=1 -DHAVE_STRNDUP=1 -DHAVE_STRNLEN=1 -DHAVE_STRSEP=1 -DHAVE_STRSIGNAL=1 -DHAVE_STRVERSCMP=1 CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing -Wno-long-long -D_FILE_OFFSET_BITS=64 -D_LINUX -D_REENTRANT CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing LIBS = LIBDIRS = LDFLAGS = $(LIBDIRS) $(LIBS) RM = rm -f MKDCMD = mkdir -p BASENAME = basename GETCHAR = getchar GETS = gets MEMCCPY = memccpy MEMCHR = memchr MEMCMP = memcmp MEMCPY = memcpy MEMMEM = memmem MEMMOVE = memmove MEMPCPY = mempcpy MEMRCHR = memrchr MEMSET = memset PRINTF = printf PUTCHAR = putchar PUTS = puts SCANF = scanf SNPRINTF = snprintf SSCANF = sscanf STRCASESTR = strcasestr STRCHR = strchr STRCOLL = strcoll STRCSPN = strcspn STRERROR = strerror STRNCASECMP = strncasecmp STRNCAT = strncat STRNCMP = strncmp STRNCPY = strncpy STRNDUP = strndup STRNLEN = strnlen STRPBRK = strpbrk STRRCHR = strrchr STRSEP = strsep STRSIGNAL = strsignal STRSPN = strspn STRSTR = strstr STRTOK = strtok STRVERSCMP = strverscmp VPRINTF = vprintf VSNPRINTF = vsnprintf all: objdir make objdir: $(MKDCMD) obj/ clean: objdir $(RM) obj/*.o *.o *~ #make: $(BASENAME) #make: $(GETCHAR) #make: $(GETS) #make: $(MEMCCPY) #make: $(MEMCHR) #make: $(MEMCMP) #make: $(MEMCPY) #make: $(MEMMEM) #make: $(MEMMOVE) #make: $(MEMPCPY) #make: $(MEMRCHR) #make: $(MEMSET) #make: $(PRINTF) #make: $(PUTCHAR) #make: $(PUTS) #make: $(SCANF) #make: $(SNPRINTF) #make: $(SSCANF) #make: $(STRCASESTR) #make: $(STRCHR) #make: $(STRCOLL) #make: $(STRCSPN) #make: $(STRERROR) #make: $(STRNCASECMP) #make: $(STRNCAT) #make: $(STRNCMP) #make: $(STRNCPY) #make: $(STRNDUP) #make: $(STRNLEN) #make: $(STRPBRK) #make: $(STRRCHR) #make: $(STRSEP) #make: $(STRSIGNAL) #make: $(STRSPN) #make: $(STRSTR) #make: $(STRTOK) #make: $(STRVERSCMP) #make: $(VPRINTF) #make: $(VSNPRINTF) make: $(BASENAME) $(GETCHAR) $(GETS) $(MEMCCPY) $(MEMCHR) $(MEMCMP) $(MEMCPY) $(MEMMEM) $(MEMMOVE) $(MEMPCPY) $(MEMRCHR) $(MEMSET) $(PRINTF) $(PUTCHAR) $(PUTS) $(SCANF) $(SNPRINTF) $(SSCANF) $(STRCASESTR) $(STRCHR) $(STRCOLL) $(STRCSPN) $(STRERROR) $(STRNCASECMP) $(STRNCAT) $(STRNCMP) $(STRNCPY) $(STRNDUP) $(STRNLEN) $(STRPBRK) $(STRRCHR) $(STRSEP) $(STRSIGNAL) $(STRSPN) $(STRSTR) $(STRTOK) $(STRVERSCMP) $(VPRINTF) $(VSNPRINTF) $(BASENAME): $(BASENAME).o $(GCC) -o $(BASENAME) obj/$(BASENAME).o $(LDFLAGS) $(BASENAME).o: $(GCC) -o obj/$(BASENAME).o -c $(BASENAME).c $(CFLAGS) $(GETCHAR): $(GETCHAR).o $(GCC) -o $(GETCHAR) obj/$(GETCHAR).o $(LDFLAGS) $(GETCHAR).o: $(GCC) -o obj/$(GETCHAR).o -c $(GETCHAR).c $(CFLAGS) $(GETS): $(GETS).o $(GCC) -o $(GETS) obj/$(GETS).o $(LDFLAGS) $(GETS).o: $(GCC) -o obj/$(GETS).o -c $(GETS).c $(CFLAGS) $(MEMCCPY): $(MEMCCPY).o $(GCC) -o $(MEMCCPY) obj/$(MEMCCPY).o $(LDFLAGS) $(MEMCCPY).o: $(GCC) -o obj/$(MEMCCPY).o -c $(MEMCCPY).c $(CFLAGS) $(MEMCHR): $(MEMCHR).o $(GCC) -o $(MEMCHR) obj/$(MEMCHR).o $(LDFLAGS) $(MEMCHR).o: $(GCC) -o obj/$(MEMCHR).o -c $(MEMCHR).c $(CFLAGS) $(MEMCMP): $(MEMCMP).o $(GCC) -o $(MEMCMP) obj/$(MEMCMP).o $(LDFLAGS) $(MEMCMP).o: $(GCC) -o obj/$(MEMCMP).o -c $(MEMCMP).c $(CFLAGS) $(MEMCPY): $(MEMCPY).o $(GCC) -o $(MEMCPY) obj/$(MEMCPY).o $(LDFLAGS) $(MEMCPY).o: $(GCC) -o obj/$(MEMCPY).o -c $(MEMCPY).c $(CFLAGS) $(MEMMEM): $(MEMMEM).o $(GCC) -o $(MEMMEM) obj/$(MEMMEM).o $(LDFLAGS) $(MEMMEM).o: $(GCC) -o obj/$(MEMMEM).o -c $(MEMMEM).c $(CFLAGS) $(MEMMOVE): $(MEMMOVE).o $(GCC) -o $(MEMMOVE) obj/$(MEMMOVE).o $(LDFLAGS) $(MEMMOVE).o: $(GCC) -o obj/$(MEMMOVE).o -c $(MEMMOVE).c $(CFLAGS) $(MEMPCPY): $(MEMPCPY).o $(GCC) -o $(MEMPCPY) obj/$(MEMPCPY).o $(LDFLAGS) $(MEMPCPY).o: $(GCC) -o obj/$(MEMPCPY).o -c $(MEMPCPY).c $(CFLAGS) $(MEMRCHR): $(MEMRCHR).o $(GCC) -o $(MEMRCHR) obj/$(MEMRCHR).o $(LDFLAGS) $(MEMRCHR).o: $(GCC) -o obj/$(MEMRCHR).o -c $(MEMRCHR).c $(CFLAGS) $(MEMSET): $(MEMSET).o $(GCC) -o $(MEMSET) obj/$(MEMSET).o $(LDFLAGS) $(MEMSET).o: $(GCC) -o obj/$(MEMSET).o -c $(MEMSET).c $(CFLAGS) $(PRINTF): $(PRINTF).o $(GCC) -o $(PRINTF) obj/$(PRINTF).o $(LDFLAGS) $(PRINTF).o: $(GCC) -o obj/$(PRINTF).o -c $(PRINTF).c $(CFLAGS) $(PUTCHAR): $(PUTCHAR).o $(GCC) -o $(PUTCHAR) obj/$(PUTCHAR).o $(LDFLAGS) $(PUTCHAR).o: $(GCC) -o obj/$(PUTCHAR).o -c $(PUTCHAR).c $(CFLAGS) $(PUTS): $(PUTS).o $(GCC) -o $(PUTS) obj/$(PUTS).o $(LDFLAGS) $(PUTS).o: $(GCC) -o obj/$(PUTS).o -c $(PUTS).c $(CFLAGS) $(SCANF): $(SCANF).o $(GCC) -o $(SCANF) obj/$(SCANF).o $(LDFLAGS) $(SCANF).o: $(GCC) -o obj/$(SCANF).o -c $(SCANF).c $(CFLAGS) $(SNPRINTF): $(SNPRINTF).o $(GCC) -o $(SNPRINTF) obj/$(SNPRINTF).o $(LDFLAGS) $(SNPRINTF).o: $(GCC) -o obj/$(SNPRINTF).o -c $(SNPRINTF).c $(CFLAGS) $(SSCANF): $(SSCANF).o $(GCC) -o $(SSCANF) obj/$(SSCANF).o $(LDFLAGS) $(SSCANF).o: $(GCC) -o obj/$(SSCANF).o -c $(SSCANF).c $(CFLAGS) $(STRCASESTR): $(STRCASESTR).o $(GCC) -o $(STRCASESTR) obj/$(STRCASESTR).o $(LDFLAGS) $(STRCASESTR).o: $(GCC) -o obj/$(STRCASESTR).o -c $(STRCASESTR).c $(CFLAGS) $(STRCHR): $(STRCHR).o $(GCC) -o $(STRCHR) obj/$(STRCHR).o $(LDFLAGS) $(STRCHR).o: $(GCC) -o obj/$(STRCHR).o -c $(STRCHR).c $(CFLAGS) $(STRCOLL): $(STRCOLL).o $(GCC) -o $(STRCOLL) obj/$(STRCOLL).o $(LDFLAGS) $(STRCOLL).o: $(GCC) -o obj/$(STRCOLL).o -c $(STRCOLL).c $(CFLAGS) $(STRCSPN): $(STRCSPN).o $(GCC) -o $(STRCSPN) obj/$(STRCSPN).o $(LDFLAGS) $(STRCSPN).o: $(GCC) -o obj/$(STRCSPN).o -c $(STRCSPN).c $(CFLAGS) $(STRERROR): $(STRERROR).o $(GCC) -o $(STRERROR) obj/$(STRERROR).o $(LDFLAGS) $(STRERROR).o: $(GCC) -o obj/$(STRERROR).o -c $(STRERROR).c $(CFLAGS) $(STRNCASECMP): $(STRNCASECMP).o $(GCC) -o $(STRNCASECMP) obj/$(STRNCASECMP).o $(LDFLAGS) $(STRNCASECMP).o: $(GCC) -o obj/$(STRNCASECMP).o -c $(STRNCASECMP).c $(CFLAGS) $(STRNCAT): $(STRNCAT).o $(GCC) -o $(STRNCAT) obj/$(STRNCAT).o $(LDFLAGS) $(STRNCAT).o: $(GCC) -o obj/$(STRNCAT).o -c $(STRNCAT).c $(CFLAGS) $(STRNCMP): $(STRNCMP).o $(GCC) -o $(STRNCMP) obj/$(STRNCMP).o $(LDFLAGS) $(STRNCMP).o: $(GCC) -o obj/$(STRNCMP).o -c $(STRNCMP).c $(CFLAGS) $(STRNCPY): $(STRNCPY).o $(GCC) -o $(STRNCPY) obj/$(STRNCPY).o $(LDFLAGS) $(STRNCPY).o: $(GCC) -o obj/$(STRNCPY).o -c $(STRNCPY).c $(CFLAGS) $(STRNDUP): $(STRNDUP).o $(GCC) -o $(STRNDUP) obj/$(STRNDUP).o $(LDFLAGS) $(STRNDUP).o: $(GCC) -o obj/$(STRNDUP).o -c $(STRNDUP).c $(CFLAGS) $(STRNLEN): $(STRNLEN).o $(GCC) -o $(STRNLEN) obj/$(STRNLEN).o $(LDFLAGS) $(STRNLEN).o: $(GCC) -o obj/$(STRNLEN).o -c $(STRNLEN).c $(CFLAGS) $(STRPBRK): $(STRPBRK).o $(GCC) -o $(STRPBRK) obj/$(STRPBRK).o $(LDFLAGS) $(STRPBRK).o: $(GCC) -o obj/$(STRPBRK).o -c $(STRPBRK).c $(CFLAGS) $(STRRCHR): $(STRRCHR).o $(GCC) -o $(STRRCHR) obj/$(STRRCHR).o $(LDFLAGS) $(STRRCHR).o: $(GCC) -o obj/$(STRRCHR).o -c $(STRRCHR).c $(CFLAGS) $(STRSEP): $(STRSEP).o $(GCC) -o $(STRSEP) obj/$(STRSEP).o $(LDFLAGS) $(STRSEP).o: $(GCC) -o obj/$(STRSEP).o -c $(STRSEP).c $(CFLAGS) $(STRSIGNAL): $(STRSIGNAL).o $(GCC) -o $(STRSIGNAL) obj/$(STRSIGNAL).o $(LDFLAGS) $(STRSIGNAL).o: $(GCC) -o obj/$(STRSIGNAL).o -c $(STRSIGNAL).c $(CFLAGS) $(STRSPN): $(STRSPN).o $(GCC) -o $(STRSPN) obj/$(STRSPN).o $(LDFLAGS) $(STRSPN).o: $(GCC) -o obj/$(STRSPN).o -c $(STRSPN).c $(CFLAGS) $(STRSTR): $(STRSTR).o $(GCC) -o $(STRSTR) obj/$(STRSTR).o $(LDFLAGS) $(STRSTR).o: $(GCC) -o obj/$(STRSTR).o -c $(STRSTR).c $(CFLAGS) $(STRTOK): $(STRTOK).o $(GCC) -o $(STRTOK) obj/$(STRTOK).o $(LDFLAGS) $(STRTOK).o: $(GCC) -o obj/$(STRTOK).o -c $(STRTOK).c $(CFLAGS) $(STRVERSCMP): $(STRVERSCMP).o $(GCC) -o $(STRVERSCMP) obj/$(STRVERSCMP).o $(LDFLAGS) $(STRVERSCMP).o: $(GCC) -o obj/$(STRVERSCMP).o -c $(STRVERSCMP).c $(CFLAGS) $(VPRINTF): $(VPRINTF).o $(GCC) -o $(VPRINTF) obj/$(VPRINTF).o $(LDFLAGS) $(VPRINTF).o: $(GCC) -o obj/$(VPRINTF).o -c $(VPRINTF).c $(CFLAGS) $(VSNPRINTF): $(VSNPRINTF).o $(GCC) -o $(VSNPRINTF) obj/$(VSNPRINTF).o $(LDFLAGS) $(VSNPRINTF).o: $(GCC) -o obj/$(VSNPRINTF).o -c $(VSNPRINTF).c $(CFLAGS)
#top Makefile.obsd¶
SELECT ALL
# Project: Project # Makefile created GCC = gcc INCS = -DHAVE_STRNCASECMP=1 -DHAVE_STRNCASESTR=1 -DHAVE_STRSEP=1 CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing -Wno-long-long -D_FILE_OFFSET_BITS=64 -D_LINUX -D_REENTRANT CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing LIBS = LIBDIRS = LDFLAGS = $(LIBDIRS) $(LIBS) RM = rm -f MKDCMD = mkdir -p BASENAME = basename GETCHAR = getchar GETS = gets MEMCCPY = memccpy MEMCHR = memchr MEMCMP = memcmp MEMCPY = memcpy MEMMEM = memmem MEMMOVE = memmove MEMPCPY = mempcpy MEMRCHR = memrchr MEMSET = memset PRINTF = printf PUTCHAR = putchar PUTS = puts SCANF = scanf SNPRINTF = snprintf SSCANF = sscanf STRCASESTR = strcasestr STRCHR = strchr STRCOLL = strcoll STRCSPN = strcspn STRERROR = strerror STRNCASECMP = strncasecmp STRNCAT = strncat STRNCMP = strncmp STRNCPY = strncpy STRNDUP = strndup STRNLEN = strnlen STRPBRK = strpbrk STRRCHR = strrchr STRSEP = strsep STRSIGNAL = strsignal STRSPN = strspn STRSTR = strstr STRTOK = strtok STRVERSCMP = strverscmp VPRINTF = vprintf VSNPRINTF = vsnprintf all: objdir make objdir: $(MKDCMD) obj/ clean: objdir $(RM) obj/*.o *.o *~ #make: $(BASENAME) #make: $(GETCHAR) #make: $(GETS) #make: $(MEMCCPY) #make: $(MEMCHR) #make: $(MEMCMP) #make: $(MEMCPY) #make: $(MEMMEM) #make: $(MEMMOVE) #make: $(MEMPCPY) #make: $(MEMRCHR) #make: $(MEMSET) #make: $(PRINTF) #make: $(PUTCHAR) #make: $(PUTS) #make: $(SCANF) #make: $(SNPRINTF) #make: $(SSCANF) #make: $(STRCASESTR) #make: $(STRCHR) #make: $(STRCOLL) #make: $(STRCSPN) #make: $(STRERROR) #make: $(STRNCASECMP) #make: $(STRNCAT) #make: $(STRNCMP) #make: $(STRNCPY) #make: $(STRNDUP) #make: $(STRNLEN) #make: $(STRPBRK) #make: $(STRRCHR) #make: $(STRSEP) #make: $(STRSIGNAL) #make: $(STRSPN) #make: $(STRSTR) #make: $(STRTOK) #make: $(STRVERSCMP) #make: $(VPRINTF) #make: $(VSNPRINTF) make: $(BASENAME) $(GETCHAR) $(GETS) $(MEMCCPY) $(MEMCHR) $(MEMCMP) $(MEMCPY) $(MEMMEM) $(MEMMOVE) $(MEMPCPY) $(MEMRCHR) $(MEMSET) $(PRINTF) $(PUTCHAR) $(PUTS) $(SCANF) $(SNPRINTF) $(SSCANF) $(STRCASESTR) $(STRCHR) $(STRCOLL) $(STRCSPN) $(STRERROR) $(STRNCASECMP) $(STRNCAT) $(STRNCMP) $(STRNCPY) $(STRNDUP) $(STRNLEN) $(STRPBRK) $(STRRCHR) $(STRSEP) $(STRSIGNAL) $(STRSPN) $(STRSTR) $(STRTOK) $(STRVERSCMP) $(VPRINTF) $(VSNPRINTF) $(BASENAME): $(BASENAME).o $(GCC) -o $(BASENAME) obj/$(BASENAME).o $(LDFLAGS) $(BASENAME).o: $(GCC) -o obj/$(BASENAME).o -c $(BASENAME).c $(CFLAGS) $(GETCHAR): $(GETCHAR).o $(GCC) -o $(GETCHAR) obj/$(GETCHAR).o $(LDFLAGS) $(GETCHAR).o: $(GCC) -o obj/$(GETCHAR).o -c $(GETCHAR).c $(CFLAGS) $(GETS): $(GETS).o $(GCC) -o $(GETS) obj/$(GETS).o $(LDFLAGS) $(GETS).o: $(GCC) -o obj/$(GETS).o -c $(GETS).c $(CFLAGS) $(MEMCCPY): $(MEMCCPY).o $(GCC) -o $(MEMCCPY) obj/$(MEMCCPY).o $(LDFLAGS) $(MEMCCPY).o: $(GCC) -o obj/$(MEMCCPY).o -c $(MEMCCPY).c $(CFLAGS) $(MEMCHR): $(MEMCHR).o $(GCC) -o $(MEMCHR) obj/$(MEMCHR).o $(LDFLAGS) $(MEMCHR).o: $(GCC) -o obj/$(MEMCHR).o -c $(MEMCHR).c $(CFLAGS) $(MEMCMP): $(MEMCMP).o $(GCC) -o $(MEMCMP) obj/$(MEMCMP).o $(LDFLAGS) $(MEMCMP).o: $(GCC) -o obj/$(MEMCMP).o -c $(MEMCMP).c $(CFLAGS) $(MEMCPY): $(MEMCPY).o $(GCC) -o $(MEMCPY) obj/$(MEMCPY).o $(LDFLAGS) $(MEMCPY).o: $(GCC) -o obj/$(MEMCPY).o -c $(MEMCPY).c $(CFLAGS) $(MEMMEM): $(MEMMEM).o $(GCC) -o $(MEMMEM) obj/$(MEMMEM).o $(LDFLAGS) $(MEMMEM).o: $(GCC) -o obj/$(MEMMEM).o -c $(MEMMEM).c $(CFLAGS) $(MEMMOVE): $(MEMMOVE).o $(GCC) -o $(MEMMOVE) obj/$(MEMMOVE).o $(LDFLAGS) $(MEMMOVE).o: $(GCC) -o obj/$(MEMMOVE).o -c $(MEMMOVE).c $(CFLAGS) $(MEMPCPY): $(MEMPCPY).o $(GCC) -o $(MEMPCPY) obj/$(MEMPCPY).o $(LDFLAGS) $(MEMPCPY).o: $(GCC) -o obj/$(MEMPCPY).o -c $(MEMPCPY).c $(CFLAGS) $(MEMRCHR): $(MEMRCHR).o $(GCC) -o $(MEMRCHR) obj/$(MEMRCHR).o $(LDFLAGS) $(MEMRCHR).o: $(GCC) -o obj/$(MEMRCHR).o -c $(MEMRCHR).c $(CFLAGS) $(MEMSET): $(MEMSET).o $(GCC) -o $(MEMSET) obj/$(MEMSET).o $(LDFLAGS) $(MEMSET).o: $(GCC) -o obj/$(MEMSET).o -c $(MEMSET).c $(CFLAGS) $(PRINTF): $(PRINTF).o $(GCC) -o $(PRINTF) obj/$(PRINTF).o $(LDFLAGS) $(PRINTF).o: $(GCC) -o obj/$(PRINTF).o -c $(PRINTF).c $(CFLAGS) $(PUTCHAR): $(PUTCHAR).o $(GCC) -o $(PUTCHAR) obj/$(PUTCHAR).o $(LDFLAGS) $(PUTCHAR).o: $(GCC) -o obj/$(PUTCHAR).o -c $(PUTCHAR).c $(CFLAGS) $(PUTS): $(PUTS).o $(GCC) -o $(PUTS) obj/$(PUTS).o $(LDFLAGS) $(PUTS).o: $(GCC) -o obj/$(PUTS).o -c $(PUTS).c $(CFLAGS) $(SCANF): $(SCANF).o $(GCC) -o $(SCANF) obj/$(SCANF).o $(LDFLAGS) $(SCANF).o: $(GCC) -o obj/$(SCANF).o -c $(SCANF).c $(CFLAGS) $(SNPRINTF): $(SNPRINTF).o $(GCC) -o $(SNPRINTF) obj/$(SNPRINTF).o $(LDFLAGS) $(SNPRINTF).o: $(GCC) -o obj/$(SNPRINTF).o -c $(SNPRINTF).c $(CFLAGS) $(SSCANF): $(SSCANF).o $(GCC) -o $(SSCANF) obj/$(SSCANF).o $(LDFLAGS) $(SSCANF).o: $(GCC) -o obj/$(SSCANF).o -c $(SSCANF).c $(CFLAGS) $(STRCASESTR): $(STRCASESTR).o $(GCC) -o $(STRCASESTR) obj/$(STRCASESTR).o $(LDFLAGS) $(STRCASESTR).o: $(GCC) -o obj/$(STRCASESTR).o -c $(STRCASESTR).c $(CFLAGS) $(STRCHR): $(STRCHR).o $(GCC) -o $(STRCHR) obj/$(STRCHR).o $(LDFLAGS) $(STRCHR).o: $(GCC) -o obj/$(STRCHR).o -c $(STRCHR).c $(CFLAGS) $(STRCOLL): $(STRCOLL).o $(GCC) -o $(STRCOLL) obj/$(STRCOLL).o $(LDFLAGS) $(STRCOLL).o: $(GCC) -o obj/$(STRCOLL).o -c $(STRCOLL).c $(CFLAGS) $(STRCSPN): $(STRCSPN).o $(GCC) -o $(STRCSPN) obj/$(STRCSPN).o $(LDFLAGS) $(STRCSPN).o: $(GCC) -o obj/$(STRCSPN).o -c $(STRCSPN).c $(CFLAGS) $(STRERROR): $(STRERROR).o $(GCC) -o $(STRERROR) obj/$(STRERROR).o $(LDFLAGS) $(STRERROR).o: $(GCC) -o obj/$(STRERROR).o -c $(STRERROR).c $(CFLAGS) $(STRNCASECMP): $(STRNCASECMP).o $(GCC) -o $(STRNCASECMP) obj/$(STRNCASECMP).o $(LDFLAGS) $(STRNCASECMP).o: $(GCC) -o obj/$(STRNCASECMP).o -c $(STRNCASECMP).c $(CFLAGS) $(STRNCAT): $(STRNCAT).o $(GCC) -o $(STRNCAT) obj/$(STRNCAT).o $(LDFLAGS) $(STRNCAT).o: $(GCC) -o obj/$(STRNCAT).o -c $(STRNCAT).c $(CFLAGS) $(STRNCMP): $(STRNCMP).o $(GCC) -o $(STRNCMP) obj/$(STRNCMP).o $(LDFLAGS) $(STRNCMP).o: $(GCC) -o obj/$(STRNCMP).o -c $(STRNCMP).c $(CFLAGS) $(STRNCPY): $(STRNCPY).o $(GCC) -o $(STRNCPY) obj/$(STRNCPY).o $(LDFLAGS) $(STRNCPY).o: $(GCC) -o obj/$(STRNCPY).o -c $(STRNCPY).c $(CFLAGS) $(STRNDUP): $(STRNDUP).o $(GCC) -o $(STRNDUP) obj/$(STRNDUP).o $(LDFLAGS) $(STRNDUP).o: $(GCC) -o obj/$(STRNDUP).o -c $(STRNDUP).c $(CFLAGS) $(STRNLEN): $(STRNLEN).o $(GCC) -o $(STRNLEN) obj/$(STRNLEN).o $(LDFLAGS) $(STRNLEN).o: $(GCC) -o obj/$(STRNLEN).o -c $(STRNLEN).c $(CFLAGS) $(STRPBRK): $(STRPBRK).o $(GCC) -o $(STRPBRK) obj/$(STRPBRK).o $(LDFLAGS) $(STRPBRK).o: $(GCC) -o obj/$(STRPBRK).o -c $(STRPBRK).c $(CFLAGS) $(STRRCHR): $(STRRCHR).o $(GCC) -o $(STRRCHR) obj/$(STRRCHR).o $(LDFLAGS) $(STRRCHR).o: $(GCC) -o obj/$(STRRCHR).o -c $(STRRCHR).c $(CFLAGS) $(STRSEP): $(STRSEP).o $(GCC) -o $(STRSEP) obj/$(STRSEP).o $(LDFLAGS) $(STRSEP).o: $(GCC) -o obj/$(STRSEP).o -c $(STRSEP).c $(CFLAGS) $(STRSIGNAL): $(STRSIGNAL).o $(GCC) -o $(STRSIGNAL) obj/$(STRSIGNAL).o $(LDFLAGS) $(STRSIGNAL).o: $(GCC) -o obj/$(STRSIGNAL).o -c $(STRSIGNAL).c $(CFLAGS) $(STRSPN): $(STRSPN).o $(GCC) -o $(STRSPN) obj/$(STRSPN).o $(LDFLAGS) $(STRSPN).o: $(GCC) -o obj/$(STRSPN).o -c $(STRSPN).c $(CFLAGS) $(STRSTR): $(STRSTR).o $(GCC) -o $(STRSTR) obj/$(STRSTR).o $(LDFLAGS) $(STRSTR).o: $(GCC) -o obj/$(STRSTR).o -c $(STRSTR).c $(CFLAGS) $(STRTOK): $(STRTOK).o $(GCC) -o $(STRTOK) obj/$(STRTOK).o $(LDFLAGS) $(STRTOK).o: $(GCC) -o obj/$(STRTOK).o -c $(STRTOK).c $(CFLAGS) $(STRVERSCMP): $(STRVERSCMP).o $(GCC) -o $(STRVERSCMP) obj/$(STRVERSCMP).o $(LDFLAGS) $(STRVERSCMP).o: $(GCC) -o obj/$(STRVERSCMP).o -c $(STRVERSCMP).c $(CFLAGS) $(VPRINTF): $(VPRINTF).o $(GCC) -o $(VPRINTF) obj/$(VPRINTF).o $(LDFLAGS) $(VPRINTF).o: $(GCC) -o obj/$(VPRINTF).o -c $(VPRINTF).c $(CFLAGS) $(VSNPRINTF): $(VSNPRINTF).o $(GCC) -o $(VSNPRINTF) obj/$(VSNPRINTF).o $(LDFLAGS) $(VSNPRINTF).o: $(GCC) -o obj/$(VSNPRINTF).o -c $(VSNPRINTF).c $(CFLAGS)
#top Makefile.fbsd¶
SELECT ALL
# Project: Project # Makefile created GCC = gcc INCS = -DHAVE_MEMMEM=1 -DHAVE_STRNCASECMP=1 -DHAVE_STRNCASESTR=1 -DHAVE_STRSEP=1 CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing -Wno-long-long -D_FILE_OFFSET_BITS=64 -D_LINUX -D_REENTRANT CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing LIBS = LIBDIRS = LDFLAGS = $(LIBDIRS) $(LIBS) RM = rm -f MKDCMD = mkdir -p BASENAME = basename GETCHAR = getchar GETS = gets MEMCCPY = memccpy MEMCHR = memchr MEMCMP = memcmp MEMCPY = memcpy MEMMEM = memmem MEMMOVE = memmove MEMPCPY = mempcpy MEMRCHR = memrchr MEMSET = memset PRINTF = printf PUTCHAR = putchar PUTS = puts SCANF = scanf SNPRINTF = snprintf SSCANF = sscanf STRCASESTR = strcasestr STRCHR = strchr STRCOLL = strcoll STRCSPN = strcspn STRERROR = strerror STRNCASECMP = strncasecmp STRNCAT = strncat STRNCMP = strncmp STRNCPY = strncpy STRNDUP = strndup STRNLEN = strnlen STRPBRK = strpbrk STRRCHR = strrchr STRSEP = strsep STRSIGNAL = strsignal STRSPN = strspn STRSTR = strstr STRTOK = strtok STRVERSCMP = strverscmp VPRINTF = vprintf VSNPRINTF = vsnprintf all: objdir make objdir: $(MKDCMD) obj/ clean: objdir $(RM) obj/*.o *.o *~ #make: $(BASENAME) #make: $(GETCHAR) #make: $(GETS) #make: $(MEMCCPY) #make: $(MEMCHR) #make: $(MEMCMP) #make: $(MEMCPY) #make: $(MEMMEM) #make: $(MEMMOVE) #make: $(MEMPCPY) #make: $(MEMRCHR) #make: $(MEMSET) #make: $(PRINTF) #make: $(PUTCHAR) #make: $(PUTS) #make: $(SCANF) #make: $(SNPRINTF) #make: $(SSCANF) #make: $(STRCASESTR) #make: $(STRCHR) #make: $(STRCOLL) #make: $(STRCSPN) #make: $(STRERROR) #make: $(STRNCASECMP) #make: $(STRNCAT) #make: $(STRNCMP) #make: $(STRNCPY) #make: $(STRNDUP) #make: $(STRNLEN) #make: $(STRPBRK) #make: $(STRRCHR) #make: $(STRSEP) #make: $(STRSIGNAL) #make: $(STRSPN) #make: $(STRSTR) #make: $(STRTOK) #make: $(STRVERSCMP) #make: $(VPRINTF) #make: $(VSNPRINTF) make: $(BASENAME) $(GETCHAR) $(GETS) $(MEMCCPY) $(MEMCHR) $(MEMCMP) $(MEMCPY) $(MEMMEM) $(MEMMOVE) $(MEMPCPY) $(MEMRCHR) $(MEMSET) $(PRINTF) $(PUTCHAR) $(PUTS) $(SCANF) $(SNPRINTF) $(SSCANF) $(STRCASESTR) $(STRCHR) $(STRCOLL) $(STRCSPN) $(STRERROR) $(STRNCASECMP) $(STRNCAT) $(STRNCMP) $(STRNCPY) $(STRNDUP) $(STRNLEN) $(STRPBRK) $(STRRCHR) $(STRSEP) $(STRSIGNAL) $(STRSPN) $(STRSTR) $(STRTOK) $(STRVERSCMP) $(VPRINTF) $(VSNPRINTF) $(BASENAME): $(BASENAME).o $(GCC) -o $(BASENAME) obj/$(BASENAME).o $(LDFLAGS) $(BASENAME).o: $(GCC) -o obj/$(BASENAME).o -c $(BASENAME).c $(CFLAGS) $(GETCHAR): $(GETCHAR).o $(GCC) -o $(GETCHAR) obj/$(GETCHAR).o $(LDFLAGS) $(GETCHAR).o: $(GCC) -o obj/$(GETCHAR).o -c $(GETCHAR).c $(CFLAGS) $(GETS): $(GETS).o $(GCC) -o $(GETS) obj/$(GETS).o $(LDFLAGS) $(GETS).o: $(GCC) -o obj/$(GETS).o -c $(GETS).c $(CFLAGS) $(MEMCCPY): $(MEMCCPY).o $(GCC) -o $(MEMCCPY) obj/$(MEMCCPY).o $(LDFLAGS) $(MEMCCPY).o: $(GCC) -o obj/$(MEMCCPY).o -c $(MEMCCPY).c $(CFLAGS) $(MEMCHR): $(MEMCHR).o $(GCC) -o $(MEMCHR) obj/$(MEMCHR).o $(LDFLAGS) $(MEMCHR).o: $(GCC) -o obj/$(MEMCHR).o -c $(MEMCHR).c $(CFLAGS) $(MEMCMP): $(MEMCMP).o $(GCC) -o $(MEMCMP) obj/$(MEMCMP).o $(LDFLAGS) $(MEMCMP).o: $(GCC) -o obj/$(MEMCMP).o -c $(MEMCMP).c $(CFLAGS) $(MEMCPY): $(MEMCPY).o $(GCC) -o $(MEMCPY) obj/$(MEMCPY).o $(LDFLAGS) $(MEMCPY).o: $(GCC) -o obj/$(MEMCPY).o -c $(MEMCPY).c $(CFLAGS) $(MEMMEM): $(MEMMEM).o $(GCC) -o $(MEMMEM) obj/$(MEMMEM).o $(LDFLAGS) $(MEMMEM).o: $(GCC) -o obj/$(MEMMEM).o -c $(MEMMEM).c $(CFLAGS) $(MEMMOVE): $(MEMMOVE).o $(GCC) -o $(MEMMOVE) obj/$(MEMMOVE).o $(LDFLAGS) $(MEMMOVE).o: $(GCC) -o obj/$(MEMMOVE).o -c $(MEMMOVE).c $(CFLAGS) $(MEMPCPY): $(MEMPCPY).o $(GCC) -o $(MEMPCPY) obj/$(MEMPCPY).o $(LDFLAGS) $(MEMPCPY).o: $(GCC) -o obj/$(MEMPCPY).o -c $(MEMPCPY).c $(CFLAGS) $(MEMRCHR): $(MEMRCHR).o $(GCC) -o $(MEMRCHR) obj/$(MEMRCHR).o $(LDFLAGS) $(MEMRCHR).o: $(GCC) -o obj/$(MEMRCHR).o -c $(MEMRCHR).c $(CFLAGS) $(MEMSET): $(MEMSET).o $(GCC) -o $(MEMSET) obj/$(MEMSET).o $(LDFLAGS) $(MEMSET).o: $(GCC) -o obj/$(MEMSET).o -c $(MEMSET).c $(CFLAGS) $(PRINTF): $(PRINTF).o $(GCC) -o $(PRINTF) obj/$(PRINTF).o $(LDFLAGS) $(PRINTF).o: $(GCC) -o obj/$(PRINTF).o -c $(PRINTF).c $(CFLAGS) $(PUTCHAR): $(PUTCHAR).o $(GCC) -o $(PUTCHAR) obj/$(PUTCHAR).o $(LDFLAGS) $(PUTCHAR).o: $(GCC) -o obj/$(PUTCHAR).o -c $(PUTCHAR).c $(CFLAGS) $(PUTS): $(PUTS).o $(GCC) -o $(PUTS) obj/$(PUTS).o $(LDFLAGS) $(PUTS).o: $(GCC) -o obj/$(PUTS).o -c $(PUTS).c $(CFLAGS) $(SCANF): $(SCANF).o $(GCC) -o $(SCANF) obj/$(SCANF).o $(LDFLAGS) $(SCANF).o: $(GCC) -o obj/$(SCANF).o -c $(SCANF).c $(CFLAGS) $(SNPRINTF): $(SNPRINTF).o $(GCC) -o $(SNPRINTF) obj/$(SNPRINTF).o $(LDFLAGS) $(SNPRINTF).o: $(GCC) -o obj/$(SNPRINTF).o -c $(SNPRINTF).c $(CFLAGS) $(SSCANF): $(SSCANF).o $(GCC) -o $(SSCANF) obj/$(SSCANF).o $(LDFLAGS) $(SSCANF).o: $(GCC) -o obj/$(SSCANF).o -c $(SSCANF).c $(CFLAGS) $(STRCASESTR): $(STRCASESTR).o $(GCC) -o $(STRCASESTR) obj/$(STRCASESTR).o $(LDFLAGS) $(STRCASESTR).o: $(GCC) -o obj/$(STRCASESTR).o -c $(STRCASESTR).c $(CFLAGS) $(STRCHR): $(STRCHR).o $(GCC) -o $(STRCHR) obj/$(STRCHR).o $(LDFLAGS) $(STRCHR).o: $(GCC) -o obj/$(STRCHR).o -c $(STRCHR).c $(CFLAGS) $(STRCOLL): $(STRCOLL).o $(GCC) -o $(STRCOLL) obj/$(STRCOLL).o $(LDFLAGS) $(STRCOLL).o: $(GCC) -o obj/$(STRCOLL).o -c $(STRCOLL).c $(CFLAGS) $(STRCSPN): $(STRCSPN).o $(GCC) -o $(STRCSPN) obj/$(STRCSPN).o $(LDFLAGS) $(STRCSPN).o: $(GCC) -o obj/$(STRCSPN).o -c $(STRCSPN).c $(CFLAGS) $(STRERROR): $(STRERROR).o $(GCC) -o $(STRERROR) obj/$(STRERROR).o $(LDFLAGS) $(STRERROR).o: $(GCC) -o obj/$(STRERROR).o -c $(STRERROR).c $(CFLAGS) $(STRNCASECMP): $(STRNCASECMP).o $(GCC) -o $(STRNCASECMP) obj/$(STRNCASECMP).o $(LDFLAGS) $(STRNCASECMP).o: $(GCC) -o obj/$(STRNCASECMP).o -c $(STRNCASECMP).c $(CFLAGS) $(STRNCAT): $(STRNCAT).o $(GCC) -o $(STRNCAT) obj/$(STRNCAT).o $(LDFLAGS) $(STRNCAT).o: $(GCC) -o obj/$(STRNCAT).o -c $(STRNCAT).c $(CFLAGS) $(STRNCMP): $(STRNCMP).o $(GCC) -o $(STRNCMP) obj/$(STRNCMP).o $(LDFLAGS) $(STRNCMP).o: $(GCC) -o obj/$(STRNCMP).o -c $(STRNCMP).c $(CFLAGS) $(STRNCPY): $(STRNCPY).o $(GCC) -o $(STRNCPY) obj/$(STRNCPY).o $(LDFLAGS) $(STRNCPY).o: $(GCC) -o obj/$(STRNCPY).o -c $(STRNCPY).c $(CFLAGS) $(STRNDUP): $(STRNDUP).o $(GCC) -o $(STRNDUP) obj/$(STRNDUP).o $(LDFLAGS) $(STRNDUP).o: $(GCC) -o obj/$(STRNDUP).o -c $(STRNDUP).c $(CFLAGS) $(STRNLEN): $(STRNLEN).o $(GCC) -o $(STRNLEN) obj/$(STRNLEN).o $(LDFLAGS) $(STRNLEN).o: $(GCC) -o obj/$(STRNLEN).o -c $(STRNLEN).c $(CFLAGS) $(STRPBRK): $(STRPBRK).o $(GCC) -o $(STRPBRK) obj/$(STRPBRK).o $(LDFLAGS) $(STRPBRK).o: $(GCC) -o obj/$(STRPBRK).o -c $(STRPBRK).c $(CFLAGS) $(STRRCHR): $(STRRCHR).o $(GCC) -o $(STRRCHR) obj/$(STRRCHR).o $(LDFLAGS) $(STRRCHR).o: $(GCC) -o obj/$(STRRCHR).o -c $(STRRCHR).c $(CFLAGS) $(STRSEP): $(STRSEP).o $(GCC) -o $(STRSEP) obj/$(STRSEP).o $(LDFLAGS) $(STRSEP).o: $(GCC) -o obj/$(STRSEP).o -c $(STRSEP).c $(CFLAGS) $(STRSIGNAL): $(STRSIGNAL).o $(GCC) -o $(STRSIGNAL) obj/$(STRSIGNAL).o $(LDFLAGS) $(STRSIGNAL).o: $(GCC) -o obj/$(STRSIGNAL).o -c $(STRSIGNAL).c $(CFLAGS) $(STRSPN): $(STRSPN).o $(GCC) -o $(STRSPN) obj/$(STRSPN).o $(LDFLAGS) $(STRSPN).o: $(GCC) -o obj/$(STRSPN).o -c $(STRSPN).c $(CFLAGS) $(STRSTR): $(STRSTR).o $(GCC) -o $(STRSTR) obj/$(STRSTR).o $(LDFLAGS) $(STRSTR).o: $(GCC) -o obj/$(STRSTR).o -c $(STRSTR).c $(CFLAGS) $(STRTOK): $(STRTOK).o $(GCC) -o $(STRTOK) obj/$(STRTOK).o $(LDFLAGS) $(STRTOK).o: $(GCC) -o obj/$(STRTOK).o -c $(STRTOK).c $(CFLAGS) $(STRVERSCMP): $(STRVERSCMP).o $(GCC) -o $(STRVERSCMP) obj/$(STRVERSCMP).o $(LDFLAGS) $(STRVERSCMP).o: $(GCC) -o obj/$(STRVERSCMP).o -c $(STRVERSCMP).c $(CFLAGS) $(VPRINTF): $(VPRINTF).o $(GCC) -o $(VPRINTF) obj/$(VPRINTF).o $(LDFLAGS) $(VPRINTF).o: $(GCC) -o obj/$(VPRINTF).o -c $(VPRINTF).c $(CFLAGS) $(VSNPRINTF): $(VSNPRINTF).o $(GCC) -o $(VSNPRINTF) obj/$(VSNPRINTF).o $(LDFLAGS) $(VSNPRINTF).o: $(GCC) -o obj/$(VSNPRINTF).o -c $(VSNPRINTF).c $(CFLAGS)
#top Makefile.sol¶
SELECT ALL
# Project: Project # Makefile created GCC = gcc INCS = -DHAVE_MEMMEM=1 -DHAVE_STRNCASECMP=1 -DHAVE_STRNCASESTR=1 -DHAVE_STRNDUP=1 -DHAVE_STRNLEN=1 -DHAVE_STRSEP=1 CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing -Wno-long-long -D_FILE_OFFSET_BITS=64 -D_LINUX -D_REENTRANT CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing LIBS = LIBDIRS = LDFLAGS = $(LIBDIRS) $(LIBS) RM = rm -f MKDCMD = mkdir -p BASENAME = basename GETCHAR = getchar GETS = gets MEMCCPY = memccpy MEMCHR = memchr MEMCMP = memcmp MEMCPY = memcpy MEMMEM = memmem MEMMOVE = memmove MEMPCPY = mempcpy MEMRCHR = memrchr MEMSET = memset PRINTF = printf PUTCHAR = putchar PUTS = puts SCANF = scanf SNPRINTF = snprintf SSCANF = sscanf STRCASESTR = strcasestr STRCHR = strchr STRCOLL = strcoll STRCSPN = strcspn STRERROR = strerror STRNCASECMP = strncasecmp STRNCAT = strncat STRNCMP = strncmp STRNCPY = strncpy STRNDUP = strndup STRNLEN = strnlen STRPBRK = strpbrk STRRCHR = strrchr STRSEP = strsep STRSIGNAL = strsignal STRSPN = strspn STRSTR = strstr STRTOK = strtok STRVERSCMP = strverscmp VPRINTF = vprintf VSNPRINTF = vsnprintf all: objdir make objdir: $(MKDCMD) obj/ clean: objdir $(RM) obj/*.o *.o *~ #make: $(BASENAME) #make: $(GETCHAR) #make: $(GETS) #make: $(MEMCCPY) #make: $(MEMCHR) #make: $(MEMCMP) #make: $(MEMCPY) #make: $(MEMMEM) #make: $(MEMMOVE) #make: $(MEMPCPY) #make: $(MEMRCHR) #make: $(MEMSET) #make: $(PRINTF) #make: $(PUTCHAR) #make: $(PUTS) #make: $(SCANF) #make: $(SNPRINTF) #make: $(SSCANF) #make: $(STRCASESTR) #make: $(STRCHR) #make: $(STRCOLL) #make: $(STRCSPN) #make: $(STRERROR) #make: $(STRNCASECMP) #make: $(STRNCAT) #make: $(STRNCMP) #make: $(STRNCPY) #make: $(STRNDUP) #make: $(STRNLEN) #make: $(STRPBRK) #make: $(STRRCHR) #make: $(STRSEP) #make: $(STRSIGNAL) #make: $(STRSPN) #make: $(STRSTR) #make: $(STRTOK) #make: $(STRVERSCMP) #make: $(VPRINTF) #make: $(VSNPRINTF) make: $(BASENAME) $(GETCHAR) $(GETS) $(MEMCCPY) $(MEMCHR) $(MEMCMP) $(MEMCPY) $(MEMMEM) $(MEMMOVE) $(MEMPCPY) $(MEMRCHR) $(MEMSET) $(PRINTF) $(PUTCHAR) $(PUTS) $(SCANF) $(SNPRINTF) $(SSCANF) $(STRCASESTR) $(STRCHR) $(STRCOLL) $(STRCSPN) $(STRERROR) $(STRNCASECMP) $(STRNCAT) $(STRNCMP) $(STRNCPY) $(STRNDUP) $(STRNLEN) $(STRPBRK) $(STRRCHR) $(STRSEP) $(STRSIGNAL) $(STRSPN) $(STRSTR) $(STRTOK) $(STRVERSCMP) $(VPRINTF) $(VSNPRINTF) $(BASENAME): $(BASENAME).o $(GCC) -o $(BASENAME) obj/$(BASENAME).o $(LDFLAGS) $(BASENAME).o: $(GCC) -o obj/$(BASENAME).o -c $(BASENAME).c $(CFLAGS) $(GETCHAR): $(GETCHAR).o $(GCC) -o $(GETCHAR) obj/$(GETCHAR).o $(LDFLAGS) $(GETCHAR).o: $(GCC) -o obj/$(GETCHAR).o -c $(GETCHAR).c $(CFLAGS) $(GETS): $(GETS).o $(GCC) -o $(GETS) obj/$(GETS).o $(LDFLAGS) $(GETS).o: $(GCC) -o obj/$(GETS).o -c $(GETS).c $(CFLAGS) $(MEMCCPY): $(MEMCCPY).o $(GCC) -o $(MEMCCPY) obj/$(MEMCCPY).o $(LDFLAGS) $(MEMCCPY).o: $(GCC) -o obj/$(MEMCCPY).o -c $(MEMCCPY).c $(CFLAGS) $(MEMCHR): $(MEMCHR).o $(GCC) -o $(MEMCHR) obj/$(MEMCHR).o $(LDFLAGS) $(MEMCHR).o: $(GCC) -o obj/$(MEMCHR).o -c $(MEMCHR).c $(CFLAGS) $(MEMCMP): $(MEMCMP).o $(GCC) -o $(MEMCMP) obj/$(MEMCMP).o $(LDFLAGS) $(MEMCMP).o: $(GCC) -o obj/$(MEMCMP).o -c $(MEMCMP).c $(CFLAGS) $(MEMCPY): $(MEMCPY).o $(GCC) -o $(MEMCPY) obj/$(MEMCPY).o $(LDFLAGS) $(MEMCPY).o: $(GCC) -o obj/$(MEMCPY).o -c $(MEMCPY).c $(CFLAGS) $(MEMMEM): $(MEMMEM).o $(GCC) -o $(MEMMEM) obj/$(MEMMEM).o $(LDFLAGS) $(MEMMEM).o: $(GCC) -o obj/$(MEMMEM).o -c $(MEMMEM).c $(CFLAGS) $(MEMMOVE): $(MEMMOVE).o $(GCC) -o $(MEMMOVE) obj/$(MEMMOVE).o $(LDFLAGS) $(MEMMOVE).o: $(GCC) -o obj/$(MEMMOVE).o -c $(MEMMOVE).c $(CFLAGS) $(MEMPCPY): $(MEMPCPY).o $(GCC) -o $(MEMPCPY) obj/$(MEMPCPY).o $(LDFLAGS) $(MEMPCPY).o: $(GCC) -o obj/$(MEMPCPY).o -c $(MEMPCPY).c $(CFLAGS) $(MEMRCHR): $(MEMRCHR).o $(GCC) -o $(MEMRCHR) obj/$(MEMRCHR).o $(LDFLAGS) $(MEMRCHR).o: $(GCC) -o obj/$(MEMRCHR).o -c $(MEMRCHR).c $(CFLAGS) $(MEMSET): $(MEMSET).o $(GCC) -o $(MEMSET) obj/$(MEMSET).o $(LDFLAGS) $(MEMSET).o: $(GCC) -o obj/$(MEMSET).o -c $(MEMSET).c $(CFLAGS) $(PRINTF): $(PRINTF).o $(GCC) -o $(PRINTF) obj/$(PRINTF).o $(LDFLAGS) $(PRINTF).o: $(GCC) -o obj/$(PRINTF).o -c $(PRINTF).c $(CFLAGS) $(PUTCHAR): $(PUTCHAR).o $(GCC) -o $(PUTCHAR) obj/$(PUTCHAR).o $(LDFLAGS) $(PUTCHAR).o: $(GCC) -o obj/$(PUTCHAR).o -c $(PUTCHAR).c $(CFLAGS) $(PUTS): $(PUTS).o $(GCC) -o $(PUTS) obj/$(PUTS).o $(LDFLAGS) $(PUTS).o: $(GCC) -o obj/$(PUTS).o -c $(PUTS).c $(CFLAGS) $(SCANF): $(SCANF).o $(GCC) -o $(SCANF) obj/$(SCANF).o $(LDFLAGS) $(SCANF).o: $(GCC) -o obj/$(SCANF).o -c $(SCANF).c $(CFLAGS) $(SNPRINTF): $(SNPRINTF).o $(GCC) -o $(SNPRINTF) obj/$(SNPRINTF).o $(LDFLAGS) $(SNPRINTF).o: $(GCC) -o obj/$(SNPRINTF).o -c $(SNPRINTF).c $(CFLAGS) $(SSCANF): $(SSCANF).o $(GCC) -o $(SSCANF) obj/$(SSCANF).o $(LDFLAGS) $(SSCANF).o: $(GCC) -o obj/$(SSCANF).o -c $(SSCANF).c $(CFLAGS) $(STRCASESTR): $(STRCASESTR).o $(GCC) -o $(STRCASESTR) obj/$(STRCASESTR).o $(LDFLAGS) $(STRCASESTR).o: $(GCC) -o obj/$(STRCASESTR).o -c $(STRCASESTR).c $(CFLAGS) $(STRCHR): $(STRCHR).o $(GCC) -o $(STRCHR) obj/$(STRCHR).o $(LDFLAGS) $(STRCHR).o: $(GCC) -o obj/$(STRCHR).o -c $(STRCHR).c $(CFLAGS) $(STRCOLL): $(STRCOLL).o $(GCC) -o $(STRCOLL) obj/$(STRCOLL).o $(LDFLAGS) $(STRCOLL).o: $(GCC) -o obj/$(STRCOLL).o -c $(STRCOLL).c $(CFLAGS) $(STRCSPN): $(STRCSPN).o $(GCC) -o $(STRCSPN) obj/$(STRCSPN).o $(LDFLAGS) $(STRCSPN).o: $(GCC) -o obj/$(STRCSPN).o -c $(STRCSPN).c $(CFLAGS) $(STRERROR): $(STRERROR).o $(GCC) -o $(STRERROR) obj/$(STRERROR).o $(LDFLAGS) $(STRERROR).o: $(GCC) -o obj/$(STRERROR).o -c $(STRERROR).c $(CFLAGS) $(STRNCASECMP): $(STRNCASECMP).o $(GCC) -o $(STRNCASECMP) obj/$(STRNCASECMP).o $(LDFLAGS) $(STRNCASECMP).o: $(GCC) -o obj/$(STRNCASECMP).o -c $(STRNCASECMP).c $(CFLAGS) $(STRNCAT): $(STRNCAT).o $(GCC) -o $(STRNCAT) obj/$(STRNCAT).o $(LDFLAGS) $(STRNCAT).o: $(GCC) -o obj/$(STRNCAT).o -c $(STRNCAT).c $(CFLAGS) $(STRNCMP): $(STRNCMP).o $(GCC) -o $(STRNCMP) obj/$(STRNCMP).o $(LDFLAGS) $(STRNCMP).o: $(GCC) -o obj/$(STRNCMP).o -c $(STRNCMP).c $(CFLAGS) $(STRNCPY): $(STRNCPY).o $(GCC) -o $(STRNCPY) obj/$(STRNCPY).o $(LDFLAGS) $(STRNCPY).o: $(GCC) -o obj/$(STRNCPY).o -c $(STRNCPY).c $(CFLAGS) $(STRNDUP): $(STRNDUP).o $(GCC) -o $(STRNDUP) obj/$(STRNDUP).o $(LDFLAGS) $(STRNDUP).o: $(GCC) -o obj/$(STRNDUP).o -c $(STRNDUP).c $(CFLAGS) $(STRNLEN): $(STRNLEN).o $(GCC) -o $(STRNLEN) obj/$(STRNLEN).o $(LDFLAGS) $(STRNLEN).o: $(GCC) -o obj/$(STRNLEN).o -c $(STRNLEN).c $(CFLAGS) $(STRPBRK): $(STRPBRK).o $(GCC) -o $(STRPBRK) obj/$(STRPBRK).o $(LDFLAGS) $(STRPBRK).o: $(GCC) -o obj/$(STRPBRK).o -c $(STRPBRK).c $(CFLAGS) $(STRRCHR): $(STRRCHR).o $(GCC) -o $(STRRCHR) obj/$(STRRCHR).o $(LDFLAGS) $(STRRCHR).o: $(GCC) -o obj/$(STRRCHR).o -c $(STRRCHR).c $(CFLAGS) $(STRSEP): $(STRSEP).o $(GCC) -o $(STRSEP) obj/$(STRSEP).o $(LDFLAGS) $(STRSEP).o: $(GCC) -o obj/$(STRSEP).o -c $(STRSEP).c $(CFLAGS) $(STRSIGNAL): $(STRSIGNAL).o $(GCC) -o $(STRSIGNAL) obj/$(STRSIGNAL).o $(LDFLAGS) $(STRSIGNAL).o: $(GCC) -o obj/$(STRSIGNAL).o -c $(STRSIGNAL).c $(CFLAGS) $(STRSPN): $(STRSPN).o $(GCC) -o $(STRSPN) obj/$(STRSPN).o $(LDFLAGS) $(STRSPN).o: $(GCC) -o obj/$(STRSPN).o -c $(STRSPN).c $(CFLAGS) $(STRSTR): $(STRSTR).o $(GCC) -o $(STRSTR) obj/$(STRSTR).o $(LDFLAGS) $(STRSTR).o: $(GCC) -o obj/$(STRSTR).o -c $(STRSTR).c $(CFLAGS) $(STRTOK): $(STRTOK).o $(GCC) -o $(STRTOK) obj/$(STRTOK).o $(LDFLAGS) $(STRTOK).o: $(GCC) -o obj/$(STRTOK).o -c $(STRTOK).c $(CFLAGS) $(STRVERSCMP): $(STRVERSCMP).o $(GCC) -o $(STRVERSCMP) obj/$(STRVERSCMP).o $(LDFLAGS) $(STRVERSCMP).o: $(GCC) -o obj/$(STRVERSCMP).o -c $(STRVERSCMP).c $(CFLAGS) $(VPRINTF): $(VPRINTF).o $(GCC) -o $(VPRINTF) obj/$(VPRINTF).o $(LDFLAGS) $(VPRINTF).o: $(GCC) -o obj/$(VPRINTF).o -c $(VPRINTF).c $(CFLAGS) $(VSNPRINTF): $(VSNPRINTF).o $(GCC) -o $(VSNPRINTF) obj/$(VSNPRINTF).o $(LDFLAGS) $(VSNPRINTF).o: $(GCC) -o obj/$(VSNPRINTF).o -c $(VSNPRINTF).c $(CFLAGS)
#top Makefile.beos¶
SELECT ALL
# Project: Project # Makefile created GCC = gcc INCS = -DHAVE_STRNCASECMP=1 -DHAVE_STRNCASESTR=1 -DHAVE_STRNDUP=1 -DHAVE_STRNLEN=1 CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing -Wno-long-long -D_FILE_OFFSET_BITS=64 -D_LINUX -D_REENTRANT CFLAGS = $(INCS) -W -O2 -Wall -pedantic LIBS = LIBDIRS = LDFLAGS = $(LIBDIRS) $(LIBS) RM = rm -f MKDCMD = mkdir -p BASENAME = basename GETCHAR = getchar GETS = gets MEMCCPY = memccpy MEMCHR = memchr MEMCMP = memcmp MEMCPY = memcpy MEMMEM = memmem MEMMOVE = memmove MEMPCPY = mempcpy MEMRCHR = memrchr MEMSET = memset PRINTF = printf PUTCHAR = putchar PUTS = puts SCANF = scanf SNPRINTF = snprintf SSCANF = sscanf STRCASESTR = strcasestr STRCHR = strchr STRCOLL = strcoll STRCSPN = strcspn STRERROR = strerror STRNCASECMP = strncasecmp STRNCAT = strncat STRNCMP = strncmp STRNCPY = strncpy STRNDUP = strndup STRNLEN = strnlen STRPBRK = strpbrk STRRCHR = strrchr STRSEP = strsep STRSIGNAL = strsignal STRSPN = strspn STRSTR = strstr STRTOK = strtok STRVERSCMP = strverscmp VPRINTF = vprintf VSNPRINTF = vsnprintf all: objdir make objdir: $(MKDCMD) obj/ clean: objdir $(RM) obj/*.o *.o *~ #make: $(BASENAME) #make: $(GETCHAR) #make: $(GETS) #make: $(MEMCCPY) #make: $(MEMCHR) #make: $(MEMCMP) #make: $(MEMCPY) #make: $(MEMMEM) #make: $(MEMMOVE) #make: $(MEMPCPY) #make: $(MEMRCHR) #make: $(MEMSET) #make: $(PRINTF) #make: $(PUTCHAR) #make: $(PUTS) #make: $(SCANF) #make: $(SNPRINTF) #make: $(SSCANF) #make: $(STRCASESTR) #make: $(STRCHR) #make: $(STRCOLL) #make: $(STRCSPN) #make: $(STRERROR) #make: $(STRNCASECMP) #make: $(STRNCAT) #make: $(STRNCMP) #make: $(STRNCPY) #make: $(STRNDUP) #make: $(STRNLEN) #make: $(STRPBRK) #make: $(STRRCHR) #make: $(STRSEP) #make: $(STRSIGNAL) #make: $(STRSPN) #make: $(STRSTR) #make: $(STRTOK) #make: $(STRVERSCMP) #make: $(VPRINTF) #make: $(VSNPRINTF) make: $(BASENAME) $(GETCHAR) $(GETS) $(MEMCCPY) $(MEMCHR) $(MEMCMP) $(MEMCPY) $(MEMMEM) $(MEMMOVE) $(MEMPCPY) $(MEMRCHR) $(MEMSET) $(PRINTF) $(PUTCHAR) $(PUTS) $(SCANF) $(SNPRINTF) $(SSCANF) $(STRCASESTR) $(STRCHR) $(STRCOLL) $(STRCSPN) $(STRERROR) $(STRNCASECMP) $(STRNCAT) $(STRNCMP) $(STRNCPY) $(STRNDUP) $(STRNLEN) $(STRPBRK) $(STRRCHR) $(STRSEP) $(STRSIGNAL) $(STRSPN) $(STRSTR) $(STRTOK) $(STRVERSCMP) $(VPRINTF) $(VSNPRINTF) $(BASENAME): $(BASENAME).o $(GCC) -o $(BASENAME) obj/$(BASENAME).o $(LDFLAGS) $(BASENAME).o: $(GCC) -o obj/$(BASENAME).o -c $(BASENAME).c $(CFLAGS) $(GETCHAR): $(GETCHAR).o $(GCC) -o $(GETCHAR) obj/$(GETCHAR).o $(LDFLAGS) $(GETCHAR).o: $(GCC) -o obj/$(GETCHAR).o -c $(GETCHAR).c $(CFLAGS) $(GETS): $(GETS).o $(GCC) -o $(GETS) obj/$(GETS).o $(LDFLAGS) $(GETS).o: $(GCC) -o obj/$(GETS).o -c $(GETS).c $(CFLAGS) $(MEMCCPY): $(MEMCCPY).o $(GCC) -o $(MEMCCPY) obj/$(MEMCCPY).o $(LDFLAGS) $(MEMCCPY).o: $(GCC) -o obj/$(MEMCCPY).o -c $(MEMCCPY).c $(CFLAGS) $(MEMCHR): $(MEMCHR).o $(GCC) -o $(MEMCHR) obj/$(MEMCHR).o $(LDFLAGS) $(MEMCHR).o: $(GCC) -o obj/$(MEMCHR).o -c $(MEMCHR).c $(CFLAGS) $(MEMCMP): $(MEMCMP).o $(GCC) -o $(MEMCMP) obj/$(MEMCMP).o $(LDFLAGS) $(MEMCMP).o: $(GCC) -o obj/$(MEMCMP).o -c $(MEMCMP).c $(CFLAGS) $(MEMCPY): $(MEMCPY).o $(GCC) -o $(MEMCPY) obj/$(MEMCPY).o $(LDFLAGS) $(MEMCPY).o: $(GCC) -o obj/$(MEMCPY).o -c $(MEMCPY).c $(CFLAGS) $(MEMMEM): $(MEMMEM).o $(GCC) -o $(MEMMEM) obj/$(MEMMEM).o $(LDFLAGS) $(MEMMEM).o: $(GCC) -o obj/$(MEMMEM).o -c $(MEMMEM).c $(CFLAGS) $(MEMMOVE): $(MEMMOVE).o $(GCC) -o $(MEMMOVE) obj/$(MEMMOVE).o $(LDFLAGS) $(MEMMOVE).o: $(GCC) -o obj/$(MEMMOVE).o -c $(MEMMOVE).c $(CFLAGS) $(MEMPCPY): $(MEMPCPY).o $(GCC) -o $(MEMPCPY) obj/$(MEMPCPY).o $(LDFLAGS) $(MEMPCPY).o: $(GCC) -o obj/$(MEMPCPY).o -c $(MEMPCPY).c $(CFLAGS) $(MEMRCHR): $(MEMRCHR).o $(GCC) -o $(MEMRCHR) obj/$(MEMRCHR).o $(LDFLAGS) $(MEMRCHR).o: $(GCC) -o obj/$(MEMRCHR).o -c $(MEMRCHR).c $(CFLAGS) $(MEMSET): $(MEMSET).o $(GCC) -o $(MEMSET) obj/$(MEMSET).o $(LDFLAGS) $(MEMSET).o: $(GCC) -o obj/$(MEMSET).o -c $(MEMSET).c $(CFLAGS) $(PRINTF): $(PRINTF).o $(GCC) -o $(PRINTF) obj/$(PRINTF).o $(LDFLAGS) $(PRINTF).o: $(GCC) -o obj/$(PRINTF).o -c $(PRINTF).c $(CFLAGS) $(PUTCHAR): $(PUTCHAR).o $(GCC) -o $(PUTCHAR) obj/$(PUTCHAR).o $(LDFLAGS) $(PUTCHAR).o: $(GCC) -o obj/$(PUTCHAR).o -c $(PUTCHAR).c $(CFLAGS) $(PUTS): $(PUTS).o $(GCC) -o $(PUTS) obj/$(PUTS).o $(LDFLAGS) $(PUTS).o: $(GCC) -o obj/$(PUTS).o -c $(PUTS).c $(CFLAGS) $(SCANF): $(SCANF).o $(GCC) -o $(SCANF) obj/$(SCANF).o $(LDFLAGS) $(SCANF).o: $(GCC) -o obj/$(SCANF).o -c $(SCANF).c $(CFLAGS) $(SNPRINTF): $(SNPRINTF).o $(GCC) -o $(SNPRINTF) obj/$(SNPRINTF).o $(LDFLAGS) $(SNPRINTF).o: $(GCC) -o obj/$(SNPRINTF).o -c $(SNPRINTF).c $(CFLAGS) $(SSCANF): $(SSCANF).o $(GCC) -o $(SSCANF) obj/$(SSCANF).o $(LDFLAGS) $(SSCANF).o: $(GCC) -o obj/$(SSCANF).o -c $(SSCANF).c $(CFLAGS) $(STRCASESTR): $(STRCASESTR).o $(GCC) -o $(STRCASESTR) obj/$(STRCASESTR).o $(LDFLAGS) $(STRCASESTR).o: $(GCC) -o obj/$(STRCASESTR).o -c $(STRCASESTR).c $(CFLAGS) $(STRCHR): $(STRCHR).o $(GCC) -o $(STRCHR) obj/$(STRCHR).o $(LDFLAGS) $(STRCHR).o: $(GCC) -o obj/$(STRCHR).o -c $(STRCHR).c $(CFLAGS) $(STRCOLL): $(STRCOLL).o $(GCC) -o $(STRCOLL) obj/$(STRCOLL).o $(LDFLAGS) $(STRCOLL).o: $(GCC) -o obj/$(STRCOLL).o -c $(STRCOLL).c $(CFLAGS) $(STRCSPN): $(STRCSPN).o $(GCC) -o $(STRCSPN) obj/$(STRCSPN).o $(LDFLAGS) $(STRCSPN).o: $(GCC) -o obj/$(STRCSPN).o -c $(STRCSPN).c $(CFLAGS) $(STRERROR): $(STRERROR).o $(GCC) -o $(STRERROR) obj/$(STRERROR).o $(LDFLAGS) $(STRERROR).o: $(GCC) -o obj/$(STRERROR).o -c $(STRERROR).c $(CFLAGS) $(STRNCASECMP): $(STRNCASECMP).o $(GCC) -o $(STRNCASECMP) obj/$(STRNCASECMP).o $(LDFLAGS) $(STRNCASECMP).o: $(GCC) -o obj/$(STRNCASECMP).o -c $(STRNCASECMP).c $(CFLAGS) $(STRNCAT): $(STRNCAT).o $(GCC) -o $(STRNCAT) obj/$(STRNCAT).o $(LDFLAGS) $(STRNCAT).o: $(GCC) -o obj/$(STRNCAT).o -c $(STRNCAT).c $(CFLAGS) $(STRNCMP): $(STRNCMP).o $(GCC) -o $(STRNCMP) obj/$(STRNCMP).o $(LDFLAGS) $(STRNCMP).o: $(GCC) -o obj/$(STRNCMP).o -c $(STRNCMP).c $(CFLAGS) $(STRNCPY): $(STRNCPY).o $(GCC) -o $(STRNCPY) obj/$(STRNCPY).o $(LDFLAGS) $(STRNCPY).o: $(GCC) -o obj/$(STRNCPY).o -c $(STRNCPY).c $(CFLAGS) $(STRNDUP): $(STRNDUP).o $(GCC) -o $(STRNDUP) obj/$(STRNDUP).o $(LDFLAGS) $(STRNDUP).o: $(GCC) -o obj/$(STRNDUP).o -c $(STRNDUP).c $(CFLAGS) $(STRNLEN): $(STRNLEN).o $(GCC) -o $(STRNLEN) obj/$(STRNLEN).o $(LDFLAGS) $(STRNLEN).o: $(GCC) -o obj/$(STRNLEN).o -c $(STRNLEN).c $(CFLAGS) $(STRPBRK): $(STRPBRK).o $(GCC) -o $(STRPBRK) obj/$(STRPBRK).o $(LDFLAGS) $(STRPBRK).o: $(GCC) -o obj/$(STRPBRK).o -c $(STRPBRK).c $(CFLAGS) $(STRRCHR): $(STRRCHR).o $(GCC) -o $(STRRCHR) obj/$(STRRCHR).o $(LDFLAGS) $(STRRCHR).o: $(GCC) -o obj/$(STRRCHR).o -c $(STRRCHR).c $(CFLAGS) $(STRSEP): $(STRSEP).o $(GCC) -o $(STRSEP) obj/$(STRSEP).o $(LDFLAGS) $(STRSEP).o: $(GCC) -o obj/$(STRSEP).o -c $(STRSEP).c $(CFLAGS) $(STRSIGNAL): $(STRSIGNAL).o $(GCC) -o $(STRSIGNAL) obj/$(STRSIGNAL).o $(LDFLAGS) $(STRSIGNAL).o: $(GCC) -o obj/$(STRSIGNAL).o -c $(STRSIGNAL).c $(CFLAGS) $(STRSPN): $(STRSPN).o $(GCC) -o $(STRSPN) obj/$(STRSPN).o $(LDFLAGS) $(STRSPN).o: $(GCC) -o obj/$(STRSPN).o -c $(STRSPN).c $(CFLAGS) $(STRSTR): $(STRSTR).o $(GCC) -o $(STRSTR) obj/$(STRSTR).o $(LDFLAGS) $(STRSTR).o: $(GCC) -o obj/$(STRSTR).o -c $(STRSTR).c $(CFLAGS) $(STRTOK): $(STRTOK).o $(GCC) -o $(STRTOK) obj/$(STRTOK).o $(LDFLAGS) $(STRTOK).o: $(GCC) -o obj/$(STRTOK).o -c $(STRTOK).c $(CFLAGS) $(STRVERSCMP): $(STRVERSCMP).o $(GCC) -o $(STRVERSCMP) obj/$(STRVERSCMP).o $(LDFLAGS) $(STRVERSCMP).o: $(GCC) -o obj/$(STRVERSCMP).o -c $(STRVERSCMP).c $(CFLAGS) $(VPRINTF): $(VPRINTF).o $(GCC) -o $(VPRINTF) obj/$(VPRINTF).o $(LDFLAGS) $(VPRINTF).o: $(GCC) -o obj/$(VPRINTF).o -c $(VPRINTF).c $(CFLAGS) $(VSNPRINTF): $(VSNPRINTF).o $(GCC) -o $(VSNPRINTF) obj/$(VSNPRINTF).o $(LDFLAGS) $(VSNPRINTF).o: $(GCC) -o obj/$(VSNPRINTF).o -c $(VSNPRINTF).c $(CFLAGS)
#top Makefile.win¶
SELECT ALL
# Project: Project # Makefile created GCC = gcc INCS = CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing -Wno-long-long -D_FILE_OFFSET_BITS=64 -D_LINUX -D_REENTRANT CFLAGS = $(INCS) -W -O2 -Wall -pedantic -Wstrict-aliasing LIBS = LIBDIRS = LDFLAGS = $(LIBDIRS) $(LIBS) RM = del /q /s MKDCMD = mkdir BASENAME = basename GETCHAR = getchar GETS = gets MEMCCPY = memccpy MEMCHR = memchr MEMCMP = memcmp MEMCPY = memcpy MEMMEM = memmem MEMMOVE = memmove MEMPCPY = mempcpy MEMRCHR = memrchr MEMSET = memset PRINTF = printf PUTCHAR = putchar PUTS = puts SCANF = scanf SNPRINTF = snprintf SSCANF = sscanf STRCASESTR = strcasestr STRCHR = strchr STRCOLL = strcoll STRCSPN = strcspn STRERROR = strerror STRNCASECMP = strncasecmp STRNCAT = strncat STRNCMP = strncmp STRNCPY = strncpy STRNDUP = strndup STRNLEN = strnlen STRPBRK = strpbrk STRRCHR = strrchr STRSEP = strsep STRSIGNAL = strsignal STRSPN = strspn STRSTR = strstr STRTOK = strtok STRVERSCMP = strverscmp VPRINTF = vprintf VSNPRINTF = vsnprintf all: make objdir: $(MKDCMD) obj\ clean: $(RM) obj\*.o *.o *~ #make: $(BASENAME) #make: $(GETCHAR) #make: $(GETS) #make: $(MEMCCPY) #make: $(MEMCHR) #make: $(MEMCMP) #make: $(MEMCPY) #make: $(MEMMEM) #make: $(MEMMOVE) #make: $(MEMPCPY) #make: $(MEMRCHR) #make: $(MEMSET) #make: $(PRINTF) #make: $(PUTCHAR) #make: $(PUTS) #make: $(SCANF) #make: $(SNPRINTF) #make: $(SSCANF) #make: $(STRCASESTR) #make: $(STRCHR) #make: $(STRCOLL) #make: $(STRCSPN) #make: $(STRERROR) #make: $(STRNCASECMP) #make: $(STRNCAT) #make: $(STRNCMP) #make: $(STRNCPY) #make: $(STRNDUP) #make: $(STRNLEN) #make: $(STRPBRK) #make: $(STRRCHR) #make: $(STRSEP) #make: $(STRSIGNAL) #make: $(STRSPN) #make: $(STRSTR) #make: $(STRTOK) #make: $(STRVERSCMP) #make: $(VPRINTF) #make: $(VSNPRINTF) make: $(BASENAME) $(GETCHAR) $(GETS) $(MEMCCPY) $(MEMCHR) $(MEMCMP) $(MEMCPY) $(MEMMEM) $(MEMMOVE) $(MEMPCPY) $(MEMRCHR) $(MEMSET) $(PRINTF) $(PUTCHAR) $(PUTS) $(SCANF) $(SNPRINTF) $(SSCANF) $(STRCASESTR) $(STRCHR) $(STRCOLL) $(STRCSPN) $(STRERROR) $(STRNCASECMP) $(STRNCAT) $(STRNCMP) $(STRNCPY) $(STRNDUP) $(STRNLEN) $(STRPBRK) $(STRRCHR) $(STRSEP) $(STRSIGNAL) $(STRSPN) $(STRSTR) $(STRTOK) $(STRVERSCMP) $(VPRINTF) $(VSNPRINTF) $(BASENAME): $(BASENAME).o $(GCC) -o $(BASENAME) obj/$(BASENAME).o $(LDFLAGS) $(BASENAME).o: $(GCC) -o obj/$(BASENAME).o -c $(BASENAME).c $(CFLAGS) $(GETCHAR): $(GETCHAR).o $(GCC) -o $(GETCHAR) obj/$(GETCHAR).o $(LDFLAGS) $(GETCHAR).o: $(GCC) -o obj/$(GETCHAR).o -c $(GETCHAR).c $(CFLAGS) $(GETS): $(GETS).o $(GCC) -o $(GETS) obj/$(GETS).o $(LDFLAGS) $(GETS).o: $(GCC) -o obj/$(GETS).o -c $(GETS).c $(CFLAGS) $(MEMCCPY): $(MEMCCPY).o $(GCC) -o $(MEMCCPY) obj/$(MEMCCPY).o $(LDFLAGS) $(MEMCCPY).o: $(GCC) -o obj/$(MEMCCPY).o -c $(MEMCCPY).c $(CFLAGS) $(MEMCHR): $(MEMCHR).o $(GCC) -o $(MEMCHR) obj/$(MEMCHR).o $(LDFLAGS) $(MEMCHR).o: $(GCC) -o obj/$(MEMCHR).o -c $(MEMCHR).c $(CFLAGS) $(MEMCMP): $(MEMCMP).o $(GCC) -o $(MEMCMP) obj/$(MEMCMP).o $(LDFLAGS) $(MEMCMP).o: $(GCC) -o obj/$(MEMCMP).o -c $(MEMCMP).c $(CFLAGS) $(MEMCPY): $(MEMCPY).o $(GCC) -o $(MEMCPY) obj/$(MEMCPY).o $(LDFLAGS) $(MEMCPY).o: $(GCC) -o obj/$(MEMCPY).o -c $(MEMCPY).c $(CFLAGS) $(MEMMEM): $(MEMMEM).o $(GCC) -o $(MEMMEM) obj/$(MEMMEM).o $(LDFLAGS) $(MEMMEM).o: $(GCC) -o obj/$(MEMMEM).o -c $(MEMMEM).c $(CFLAGS) $(MEMMOVE): $(MEMMOVE).o $(GCC) -o $(MEMMOVE) obj/$(MEMMOVE).o $(LDFLAGS) $(MEMMOVE).o: $(GCC) -o obj/$(MEMMOVE).o -c $(MEMMOVE).c $(CFLAGS) $(MEMPCPY): $(MEMPCPY).o $(GCC) -o $(MEMPCPY) obj/$(MEMPCPY).o $(LDFLAGS) $(MEMPCPY).o: $(GCC) -o obj/$(MEMPCPY).o -c $(MEMPCPY).c $(CFLAGS) $(MEMRCHR): $(MEMRCHR).o $(GCC) -o $(MEMRCHR) obj/$(MEMRCHR).o $(LDFLAGS) $(MEMRCHR).o: $(GCC) -o obj/$(MEMRCHR).o -c $(MEMRCHR).c $(CFLAGS) $(MEMSET): $(MEMSET).o $(GCC) -o $(MEMSET) obj/$(MEMSET).o $(LDFLAGS) $(MEMSET).o: $(GCC) -o obj/$(MEMSET).o -c $(MEMSET).c $(CFLAGS) $(PRINTF): $(PRINTF).o $(GCC) -o $(PRINTF) obj/$(PRINTF).o $(LDFLAGS) $(PRINTF).o: $(GCC) -o obj/$(PRINTF).o -c $(PRINTF).c $(CFLAGS) $(PUTCHAR): $(PUTCHAR).o $(GCC) -o $(PUTCHAR) obj/$(PUTCHAR).o $(LDFLAGS) $(PUTCHAR).o: $(GCC) -o obj/$(PUTCHAR).o -c $(PUTCHAR).c $(CFLAGS) $(PUTS): $(PUTS).o $(GCC) -o $(PUTS) obj/$(PUTS).o $(LDFLAGS) $(PUTS).o: $(GCC) -o obj/$(PUTS).o -c $(PUTS).c $(CFLAGS) $(SCANF): $(SCANF).o $(GCC) -o $(SCANF) obj/$(SCANF).o $(LDFLAGS) $(SCANF).o: $(GCC) -o obj/$(SCANF).o -c $(SCANF).c $(CFLAGS) $(SNPRINTF): $(SNPRINTF).o $(GCC) -o $(SNPRINTF) obj/$(SNPRINTF).o $(LDFLAGS) $(SNPRINTF).o: $(GCC) -o obj/$(SNPRINTF).o -c $(SNPRINTF).c $(CFLAGS) $(SSCANF): $(SSCANF).o $(GCC) -o $(SSCANF) obj/$(SSCANF).o $(LDFLAGS) $(SSCANF).o: $(GCC) -o obj/$(SSCANF).o -c $(SSCANF).c $(CFLAGS) $(STRCASESTR): $(STRCASESTR).o $(GCC) -o $(STRCASESTR) obj/$(STRCASESTR).o $(LDFLAGS) $(STRCASESTR).o: $(GCC) -o obj/$(STRCASESTR).o -c $(STRCASESTR).c $(CFLAGS) $(STRCHR): $(STRCHR).o $(GCC) -o $(STRCHR) obj/$(STRCHR).o $(LDFLAGS) $(STRCHR).o: $(GCC) -o obj/$(STRCHR).o -c $(STRCHR).c $(CFLAGS) $(STRCOLL): $(STRCOLL).o $(GCC) -o $(STRCOLL) obj/$(STRCOLL).o $(LDFLAGS) $(STRCOLL).o: $(GCC) -o obj/$(STRCOLL).o -c $(STRCOLL).c $(CFLAGS) $(STRCSPN): $(STRCSPN).o $(GCC) -o $(STRCSPN) obj/$(STRCSPN).o $(LDFLAGS) $(STRCSPN).o: $(GCC) -o obj/$(STRCSPN).o -c $(STRCSPN).c $(CFLAGS) $(STRERROR): $(STRERROR).o $(GCC) -o $(STRERROR) obj/$(STRERROR).o $(LDFLAGS) $(STRERROR).o: $(GCC) -o obj/$(STRERROR).o -c $(STRERROR).c $(CFLAGS) $(STRNCASECMP): $(STRNCASECMP).o $(GCC) -o $(STRNCASECMP) obj/$(STRNCASECMP).o $(LDFLAGS) $(STRNCASECMP).o: $(GCC) -o obj/$(STRNCASECMP).o -c $(STRNCASECMP).c $(CFLAGS) $(STRNCAT): $(STRNCAT).o $(GCC) -o $(STRNCAT) obj/$(STRNCAT).o $(LDFLAGS) $(STRNCAT).o: $(GCC) -o obj/$(STRNCAT).o -c $(STRNCAT).c $(CFLAGS) $(STRNCMP): $(STRNCMP).o $(GCC) -o $(STRNCMP) obj/$(STRNCMP).o $(LDFLAGS) $(STRNCMP).o: $(GCC) -o obj/$(STRNCMP).o -c $(STRNCMP).c $(CFLAGS) $(STRNCPY): $(STRNCPY).o $(GCC) -o $(STRNCPY) obj/$(STRNCPY).o $(LDFLAGS) $(STRNCPY).o: $(GCC) -o obj/$(STRNCPY).o -c $(STRNCPY).c $(CFLAGS) $(STRNDUP): $(STRNDUP).o $(GCC) -o $(STRNDUP) obj/$(STRNDUP).o $(LDFLAGS) $(STRNDUP).o: $(GCC) -o obj/$(STRNDUP).o -c $(STRNDUP).c $(CFLAGS) $(STRNLEN): $(STRNLEN).o $(GCC) -o $(STRNLEN) obj/$(STRNLEN).o $(LDFLAGS) $(STRNLEN).o: $(GCC) -o obj/$(STRNLEN).o -c $(STRNLEN).c $(CFLAGS) $(STRPBRK): $(STRPBRK).o $(GCC) -o $(STRPBRK) obj/$(STRPBRK).o $(LDFLAGS) $(STRPBRK).o: $(GCC) -o obj/$(STRPBRK).o -c $(STRPBRK).c $(CFLAGS) $(STRRCHR): $(STRRCHR).o $(GCC) -o $(STRRCHR) obj/$(STRRCHR).o $(LDFLAGS) $(STRRCHR).o: $(GCC) -o obj/$(STRRCHR).o -c $(STRRCHR).c $(CFLAGS) $(STRSEP): $(STRSEP).o $(GCC) -o $(STRSEP) obj/$(STRSEP).o $(LDFLAGS) $(STRSEP).o: $(GCC) -o obj/$(STRSEP).o -c $(STRSEP).c $(CFLAGS) $(STRSIGNAL): $(STRSIGNAL).o $(GCC) -o $(STRSIGNAL) obj/$(STRSIGNAL).o $(LDFLAGS) $(STRSIGNAL).o: $(GCC) -o obj/$(STRSIGNAL).o -c $(STRSIGNAL).c $(CFLAGS) $(STRSPN): $(STRSPN).o $(GCC) -o $(STRSPN) obj/$(STRSPN).o $(LDFLAGS) $(STRSPN).o: $(GCC) -o obj/$(STRSPN).o -c $(STRSPN).c $(CFLAGS) $(STRSTR): $(STRSTR).o $(GCC) -o $(STRSTR) obj/$(STRSTR).o $(LDFLAGS) $(STRSTR).o: $(GCC) -o obj/$(STRSTR).o -c $(STRSTR).c $(CFLAGS) $(STRTOK): $(STRTOK).o $(GCC) -o $(STRTOK) obj/$(STRTOK).o $(LDFLAGS) $(STRTOK).o: $(GCC) -o obj/$(STRTOK).o -c $(STRTOK).c $(CFLAGS) $(STRVERSCMP): $(STRVERSCMP).o $(GCC) -o $(STRVERSCMP) obj/$(STRVERSCMP).o $(LDFLAGS) $(STRVERSCMP).o: $(GCC) -o obj/$(STRVERSCMP).o -c $(STRVERSCMP).c $(CFLAGS) $(VPRINTF): $(VPRINTF).o $(GCC) -o $(VPRINTF) obj/$(VPRINTF).o $(LDFLAGS) $(VPRINTF).o: $(GCC) -o obj/$(VPRINTF).o -c $(VPRINTF).c $(CFLAGS) $(VSNPRINTF): $(VSNPRINTF).o $(GCC) -o $(VSNPRINTF) obj/$(VSNPRINTF).o $(LDFLAGS) $(VSNPRINTF).o: $(GCC) -o obj/$(VSNPRINTF).o -c $(VSNPRINTF).c $(CFLAGS)
#top Predefined Constants¶
No predefined constants here.
#top CONST¶
Deklaracja stałej
CONST
znajduje się w pliku nagłówkowym .h
.Deklaracja stałej
CONST
jest następująca:CONST
#top Datatypes / MACROS¶
#top __ctype_b_loc¶
Definicja typu
__ctype_b_loc
znajduje się w pliku nagłówkowym ctype.h
.Definicja typu
__ctype_b_loc
jest następująca:extern __const unsigned short int **__ctype_b_loc (void) __attribute__ ((__const));
#top __gnuc_va_list¶
Definicja typu
__gnuc_va_list
znajduje się w pliku nagłówkowym .h
.Definicja typu
__gnuc_va_list
jest następująca:__gnuc_va_list
#top _ISbit¶
Definicja typu
_ISbit
znajduje się w pliku nagłówkowym ctype.h
.Definicja typu
_ISbit
jest następująca:# if __BYTE_ORDER == __BIG_ENDIAN # define _ISbit(bit) (1 << (bit)) # else /* __BYTE_ORDER == __LITTLE_ENDIAN */ # define _ISbit(bit) ((bit) < 8 ? ((1 << (bit)) << 8) : ((1 << (bit)) >> 8)) # endif
#top _IS*¶
Definicja typu
enum _IS*
znajduje się w pliku nagłówkowym ctype.h
.Definicja typu
enum _IS*
jest następująca:enum { _ISupper = _ISbit (0), :* UPPERCASE. */ _ISlower = _ISbit (1), :* lowercase. */ _ISalpha = _ISbit (2), :* Alphabetic. */ _ISdigit = _ISbit (3), :* Numeric. */ _ISxdigit = _ISbit (4), :* Hexadecimal numeric. */ _ISspace = _ISbit (5), :* Whitespace. */ _ISprint = _ISbit (6), :* Printing. */ _ISgraph = _ISbit (7), :* Graphical. */ _ISblank = _ISbit (8), :* Blank (usually SPC and TAB). */ _IScntrl = _ISbit (9), :* Control character. */ _ISpunct = _ISbit (10), :* Punctuation. */ _ISalnum = _ISbit (11) :* Alphanumeric. */ };
#top __isctype¶
Definicja funkcji
__isctype
znajduje się w pliku nagłówkowym ctype.h
.Definicja funkcji
__isctype
jest następująca:#define __isctype(c, type) \ ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
#top _G_va_list¶
Definicja typu
_G_va_list
znajduje się w pliku nagłówkowym _G_config.h
.Definicja typu
_G_va_list
jest następująca:#define _G_va_list __gnuc_va_list
#top size_t¶
Definicja typu
size_t
znajduje się w pliku nagłówkowym /usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h
.Definicja typu
size_t
jest następująca:/* Unsigned type of `sizeof' something. */ /* Define this type if we are doing the whole job, or if we want this type in particular. */ #if defined (_STDDEF_H) || defined (__need_size_t) #ifndef __size_t__ /* BeOS */ #ifndef __SIZE_T__ /* Cray Unicos/Mk */ #ifndef _SIZE_T /* in case <sys/types.h> has defined it. */ #ifndef _SYS_SIZE_T_H #ifndef _T_SIZE_ #ifndef _T_SIZE #ifndef __SIZE_T #ifndef _SIZE_T_ #ifndef _BSD_SIZE_T_ #ifndef _SIZE_T_DEFINED_ #ifndef _SIZE_T_DEFINED #ifndef _BSD_SIZE_T_DEFINED_ /* Darwin */ #ifndef _SIZE_T_DECLARED /* FreeBSD 5 */ #ifndef ___int_size_t_h #ifndef _GCC_SIZE_T #ifndef _SIZET_ #ifndef __size_t #define __size_t__ /* BeOS */ #define __SIZE_T__ /* Cray Unicos/Mk */ #define _SIZE_T #define _SYS_SIZE_T_H #define _T_SIZE_ #define _T_SIZE #define __SIZE_T #define _SIZE_T_ #define _BSD_SIZE_T_ #define _SIZE_T_DEFINED_ #define _SIZE_T_DEFINED #define _BSD_SIZE_T_DEFINED_ /* Darwin */ #define _SIZE_T_DECLARED /* FreeBSD 5 */ #define ___int_size_t_h #define _GCC_SIZE_T #define _SIZET_ #if defined (__FreeBSD__) && (__FreeBSD__ >= 5) /* __size_t is a typedef on FreeBSD 5!, must not trash it. */ #else #define __size_t #endif #ifndef __SIZE_TYPE__ #define __SIZE_TYPE__ long unsigned int #endif #if !(defined (__GNUG__) && defined (size_t)) typedef __SIZE_TYPE__ size_t; #ifdef __BEOS__ typedef long ssize_t; #endif /* __BEOS__ */ #endif /* !(defined (__GNUG__) && defined (size_t)) */ #endif /* __size_t */ #endif /* _SIZET_ */ #endif /* _GCC_SIZE_T */ #endif /* ___int_size_t_h */ #endif /* _SIZE_T_DECLARED */ #endif /* _BSD_SIZE_T_DEFINED_ */ #endif /* _SIZE_T_DEFINED */ #endif /* _SIZE_T_DEFINED_ */ #endif /* _BSD_SIZE_T_ */ #endif /* _SIZE_T_ */ #endif /* __SIZE_T */ #endif /* _T_SIZE */ #endif /* _T_SIZE_ */ #endif /* _SYS_SIZE_T_H */ #endif /* _SIZE_T */ #endif /* __SIZE_T__ */ #endif /* __size_t__ */ #undef __need_size_t #endif /* _STDDEF_H or __need_size_t. */
#top struct lconv¶
Definicja struktury
struct lconv
znajduje się w pliku nagłówkowym locale.h
.Definicja struktury
struct lconv
jest następująca:/* Structure giving information about numeric and monetary notation. */ struct lconv { /* Numeric (non-monetary) information. */ char *decimal_point; /* Decimal point character. */ char *thousands_sep; /* Thousands separator. */ /* Each element is the number of digits in each group; elements with higher indices are farther left. An element with value CHAR_MAX means that no further grouping is done. An element with value 0 means that the previous element is used for all groups farther left. */ char *grouping; /* Monetary information. */ /* First three chars are a currency symbol from ISO 4217. Fourth char is the separator. Fifth char is '\0'. */ char *int_curr_symbol; char *currency_symbol; /* Local currency symbol. */ char *mon_decimal_point; /* Decimal point character. */ char *mon_thousands_sep; /* Thousands separator. */ char *mon_grouping; /* Like `grouping' element (above). */ char *positive_sign; /* Sign for positive values. */ char *negative_sign; /* Sign for negative values. */ char int_frac_digits; /* Int'l fractional digits. */ char frac_digits; /* Local fractional digits. */ /* 1 if currency_symbol precedes a positive value, 0 if succeeds. */ char p_cs_precedes; /* 1 iff a space separates currency_symbol from a positive value. */ char p_sep_by_space; /* 1 if currency_symbol precedes a negative value, 0 if succeeds. */ char n_cs_precedes; /* 1 iff a space separates currency_symbol from a negative value. */ char n_sep_by_space; /* Positive and negative sign positions: 0 Parentheses surround the quantity and currency_symbol. 1 The sign string precedes the quantity and currency_symbol. 2 The sign string follows the quantity and currency_symbol. 3 The sign string immediately precedes the currency_symbol. 4 The sign string immediately follows the currency_symbol. */ char p_sign_posn; char n_sign_posn; #ifdef __USE_ISOC99 /* 1 if int_curr_symbol precedes a positive value, 0 if succeeds. */ char int_p_cs_precedes; /* 1 iff a space separates int_curr_symbol from a positive value. */ char int_p_sep_by_space; /* 1 if int_curr_symbol precedes a negative value, 0 if succeeds. */ char int_n_cs_precedes; /* 1 iff a space separates int_curr_symbol from a negative value. */ char int_n_sep_by_space; /* Positive and negative sign positions: 0 Parentheses surround the quantity and int_curr_symbol. 1 The sign string precedes the quantity and int_curr_symbol. 2 The sign string follows the quantity and int_curr_symbol. 3 The sign string immediately precedes the int_curr_symbol. 4 The sign string immediately follows the int_curr_symbol. */ char int_p_sign_posn; char int_n_sign_posn; #else char __int_p_cs_precedes; char __int_p_sep_by_space; char __int_n_cs_precedes; char __int_n_sep_by_space; char __int_p_sign_posn; char __int_n_sign_posn; #endif };
#top Strings Functions¶
#top basename¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
basename()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
basename()
jest następująca:/* Return the file name within directory of FILENAME. We don't declare the function if the `basename' macro is available (defined in <libgen.h>) which makes the XPG version of this function available. */ extern char *basename (__const char *__filename) __THROW __nonnull ((1));
Deklaracja funkcji
basename()
znajduje się w pliku nagłówkowym libgen.h
.Deklaracja funkcji
basename()
jest następująca:/* Return final component of PATH. This is the weird XPG version of this function. It sometimes will modify its argument. Therefore we normally use the GNU version (in <string.h>) and only if this header is included make the XPG version available under the real name. */ extern char *__xpg_basename (char *__path) __THROW; #define basename __xpg_basename
Powiązane:
basename(), dirname(),
Opis:
Funkcja basename() zwraca część odpowiadającą nazwie pliku (część za ostanim znakiem "/") dla ścieżki przekazanej w łańcuchu znaków __filename (wskaźniku do łańcucha znaków). Jeśli ścieżka przekazana w argumencie __filename nie zawiera znaku "/" funkcja() zwraca ciąg znaków przekazany w argumencie wywołania. Jeśli ścieżka przekazana w argumencie __filename zawiera łańcuch "/" funkcja zwraca łańcuch "/". Jeśli ścieżka przekazana w argumencie __filename jest pusta lub wskazuje na NULL funkcja basename() zwraca łańcuch ".".
Argumenty:
const char *__filename - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający ścieżkę.
Zwracana wartość:
char * - część odpowiadająca nawie pliku dla ścieżki przekazanej w argumencie __filename.
Argumenty:
const char *__filename - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający ścieżkę.
Zwracana wartość:
char * - część odpowiadająca nawie pliku dla ścieżki przekazanej w argumencie __filename.
Example:
zawartość pliku
basename.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #if defined(HAVE_LIBGEN_H) #include <libgen.h> /* for dirname(), basename(), */ #endif #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; #if defined(HAVE_BASENAME) char *appname; #endif self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s </path/to/app-name>\n", argv[0]); printf("Examples:\n"); printf(" %s /home/local/code/ansiccode/strings/basename\n", argv[0]); printf(" %s .\n", argv[0]); printf(" %s .basename\n", argv[0]); printf(" %s ./\n", argv[0]); printf(" %s ./basename\n", argv[0]); printf(" %s ../\n", argv[0]); printf(" %s ../basename\n", argv[0]); printf(" %s basename\n", argv[0]); return 0; } #if defined(HAVE_BASENAME) printf("%s: appname=basename(argv[0]=|%s|):\n", self, argv[0]); appname=basename(argv[0]); printf("%s: appname=basename(argv[0]=|%s|): appname=(%p)|%s|\n", self, argv[0], appname, appname); printf("%s: appname=basename(argv[1]=|%s|):\n", self, argv[1]); appname=basename(argv[1]); printf("%s: appname=basename(argv[1]=|%s|): appname=(%p)|%s|\n", self, argv[1], appname, appname); #endif return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/basenameprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/basename </path/to/app-name> Examples: /home/local/code/ansiccode/strings/basename /home/local/code/ansiccode/strings/basename /home/local/code/ansiccode/strings/basename . /home/local/code/ansiccode/strings/basename .basename /home/local/code/ansiccode/strings/basename ./ /home/local/code/ansiccode/strings/basename ./basename /home/local/code/ansiccode/strings/basename ../ /home/local/code/ansiccode/strings/basename ../basename /home/local/code/ansiccode/strings/basename basename
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/basename /home/local/code/ansiccode/strings/basename /home/local/code/ansiccode/strings/basename . /home/local/code/ansiccode/strings/basename .basename /home/local/code/ansiccode/strings/basename ./ /home/local/code/ansiccode/strings/basename ./basename /home/local/code/ansiccode/strings/basename ../ /home/local/code/ansiccode/strings/basename ../basename /home/local/code/ansiccode/strings/basename basenamerezultat będzie zależny od podanych argumentów wywołania programu:
basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbfaaf8ab)|basename| basename: appname=basename(argv[1]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[1]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbfaaf8d7)|basename| basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbfe148d5)|basename| basename: appname=basename(argv[1]=|.|): basename: appname=basename(argv[1]=|.|): appname=(0xbfe148de)|.| basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbf9b78cd)|basename| basename: appname=basename(argv[1]=|.basename|): basename: appname=basename(argv[1]=|.basename|): appname=(0xbf9b78d6)|.basename| basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbf9b98d4)|basename| basename: appname=basename(argv[1]=|./|): basename: appname=basename(argv[1]=|.|): appname=(0xbf9b98dd)|.| basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbfcfd8cc)|basename| basename: appname=basename(argv[1]=|./basename|): basename: appname=basename(argv[1]=|./basename|): appname=(0xbfcfd8d7)|basename| basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbf9f98d3)|basename| basename: appname=basename(argv[1]=|../|): basename: appname=basename(argv[1]=|..|): appname=(0xbf9f98dc)|..| basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbfae28cb)|basename| basename: appname=basename(argv[1]=|../basename|): basename: appname=basename(argv[1]=|../basename|): appname=(0xbfae28d7)|basename| basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): basename: appname=basename(argv[0]=|/home/local/code/ansiccode/strings/basename|): appname=(0xbfeb38ce)|basename| basename: appname=basename(argv[1]=|basename|): basename: appname=basename(argv[1]=|basename|): appname=(0xbfeb38d7)|basename|
#top dirname¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
dirname()
znajduje się w pliku nagłówkowym libgen.h
.Deklaracja funkcji
dirname()
jest następująca:/* Return directory part of PATH or "." if none is available. */ extern char *dirname (char *__path) __THROW;
Powiązane:
basename(), dirname(),
Opis:
Funkcja dirname() zwraca część odpowiadającą nawie katalogu (część łańcucha znaków do ostatniego znaku "/" z jego pominięciem, czyli bez ostatniego znaku "/") dla ścieżki przekazanej w łańcuchu znaków __filename (wskaźniku do łańcucha znaków). Jeśli ścieżka przekazana w argumencie __filename nie zawiera znaku "/" funkcja zwraca łańcuch ".". Jeśli ścieżka przekazana w argumencie __filename zawiera tylko łańcuch "/" funkcja zwraca łańcuch "/". Jeśli ścieżka przekazana w argumencie __filename jest pusta lub wskazuje na NULL funkcja zwraca wartość ".".
Argumenty:
const char *__filename - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający ścieżkę.
Zwracana wartość:
char * - część odpowiadająca nawie katalogu dla ścieżki przekazanej w argumencie __filename.
Argumenty:
const char *__filename - łańcuch znaków (wskaźnik do łańcucha znaków) zawierający ścieżkę.
Zwracana wartość:
char * - część odpowiadająca nawie katalogu dla ścieżki przekazanej w argumencie __filename.
Example:
zawartość pliku
dirname.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #if defined(HAVE_LIBGEN_H) #include <libgen.h> /* for dirname(), basename(), */ #endif #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; #if defined(HAVE_DIRNAME) char *appname; #endif self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s </path/to/app-name>\n", argv[0]); printf("Examples:\n"); printf(" %s /home/local/code/ansiccode/strings/dirname\n", argv[0]); printf(" %s .\n", argv[0]); printf(" %s .dirname\n", argv[0]); printf(" %s ./\n", argv[0]); printf(" %s ./dirname\n", argv[0]); printf(" %s ../\n", argv[0]); printf(" %s ../dirname\n", argv[0]); printf(" %s dirname\n", argv[0]); return 0; } #if defined(HAVE_DIRNAME) printf("%s: appname=dirname(argv[0]=|%s|):\n", self, argv[0]); appname=dirname(argv[0]); printf("%s: appname=dirname(argv[0]=|%s|): appname=(%p)|%s|\n", self, argv[0], appname, appname); printf("%s: appname=dirname(argv[1]=|%s|):\n", self, argv[1]); appname=dirname(argv[1]); printf("%s: appname=dirname(argv[1]=|%s|): appname=(%p)|%s|\n", self, argv[1], appname, appname); #endif return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/dirnameprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/dirname </path/to/app-name> Examples: /home/local/code/ansiccode/strings/dirname /home/local/code/ansiccode/strings/dirname /home/local/code/ansiccode/strings/dirname . /home/local/code/ansiccode/strings/dirname .dirname /home/local/code/ansiccode/strings/dirname ./ /home/local/code/ansiccode/strings/dirname ./dirname /home/local/code/ansiccode/strings/dirname ../ /home/local/code/ansiccode/strings/dirname ../dirname /home/local/code/ansiccode/strings/dirname dirname
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/dirname /home/local/code/ansiccode/strings/dirname /home/local/code/ansiccode/strings/dirname . /home/local/code/ansiccode/strings/dirname .dirname /home/local/code/ansiccode/strings/dirname ./ /home/local/code/ansiccode/strings/dirname ./dirname /home/local/code/ansiccode/strings/dirname ../ /home/local/code/ansiccode/strings/dirname ../dirname /home/local/code/ansiccode/strings/dirname dirnamerezultat będzie zależny od podanych argumentów wywołania programu:
dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings|): appname=(0xbfbcb88c)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[1]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[1]=|/home/local/code/ansiccode/strings|): appname=(0xbfbcb8b7)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings|): appname=(0xbfac08b5)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[1]=|.|): dirname: appname=dirname(argv[1]=|.|): appname=(0x22714e)|.| dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings|): appname=(0xbff628ae)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[1]=|.dirname|): dirname: appname=dirname(argv[1]=|.dirname|): appname=(0x22714e)|.| dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings|): appname=(0xbfa6e8b4)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[1]=|./|): dirname: appname=dirname(argv[1]=|./|): appname=(0x46514e)|.| dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings|): appname=(0xbfd618ad)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[1]=|./dirname|): dirname: appname=dirname(argv[1]=|.|): appname=(0xbfd618d8)|.| dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings|): appname=(0xbfbc98b3)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[1]=|../|): dirname: appname=dirname(argv[1]=|../|): appname=(0x22714e)|.| dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings|): appname=(0xbfeaa8ac)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[1]=|../dirname|): dirname: appname=dirname(argv[1]=|..|): appname=(0xbfeaa8d7)|..| dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings/dirname|): dirname: appname=dirname(argv[0]=|/home/local/code/ansiccode/strings|): appname=(0xbff808af)|/home/local/code/ansiccode/strings| dirname: appname=dirname(argv[1]=|dirname|): dirname: appname=dirname(argv[1]=|dirname|): appname=(0x22714e)|.|
#top getchar¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
getchar()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
getchar()
jest następująca:/* Read a character from stdin. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int getchar (void);
Powiązane:
getc(), getchar(), gets(), putc(), putchar(), puts(),
Opis:
Funkcja getchar() zwraca znak odczytany ze standardowego wejścia (strumienia stdin, standard input stream). Wywołanie funkcji getchar() jest równoważne do wywołania funkcji getc(stdin).
Argumenty:
Funkcja nie przyjmuje żadnych argumentów.
Zwracana wartość:
int - znak odczytany ze standardowego wejścia (strumienia stdin, standard input stream).
Argumenty:
Funkcja nie przyjmuje żadnych argumentów.
Zwracana wartość:
int - znak odczytany ze standardowego wejścia (strumienia stdin, standard input stream).
Example:
zawartość pliku
getchar.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset memcmp memchr str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <errno.h> /* for errno constant, error constants, */ int main(int argc, char **argv) { int result; if (argc<1) { printf("Usage: %s\n", argv[0]); return 1; } printf("%s: getchar(): ", argv[0]); fflush(stdout); result=getchar(); printf("%s: getchar(): result(%%d)=%d result(0x%%02X)=0x%02X result(%%c)=|%c|\n", argv[0], result, result, result); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/getcharw oczekiwaniu programu na stosowne argumenty należy wpisać (oraz nacisnąc klawisz Enter wpisany znak został odczytany):
arezultat będzie zależny od podanych danych po wywołaniu programu:
/home/local/code/ansiccode/strings/getchar: getchar(): a /home/local/code/ansiccode/strings/getchar: getchar(): result(%d)=97 result(0x%02X)=0x61 result(%c)=|a|
#top gets¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
gets()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
gets()
jest następująca:/* Get a newline-terminated string from stdin, removing the newline. DO NOT USE THIS FUNCTION!! There is no limit on how much it will read. This function is a possible cancellation point and therefore not marked with __THROW. */ extern char *gets (char *__s) __wur;
Powiązane:
getc(), getchar(), gets(), putc(), putchar(), puts(),
Opis:
Funkcja gets() zwraca łańcuch znaków (wskaźnik do łańcucha znaków) odczytanych ze standardowego wejścia (strumienia stdin) usuwając znak nowej linii, po którym funkcja kończy czytanie znaków.
Argumenty:
char *__s - wskaźnik do łańcucha znaków w którym zostaną umieszczone odczytane znaki z standardowego wejścia (strumienia stdin, standard input stream) bez znaku nowej linii.
Zwracana wartość:
char * - wskaźnik do łańcucha znaków w którym znajdują się znaki odczytane ze strumienia stdin (standardowe wejście) bez znaku nowej linii,
Argumenty:
char *__s - wskaźnik do łańcucha znaków w którym zostaną umieszczone odczytane znaki z standardowego wejścia (strumienia stdin, standard input stream) bez znaku nowej linii.
Zwracana wartość:
char * - wskaźnik do łańcucha znaków w którym znajdują się znaki odczytane ze strumienia stdin (standardowe wejście) bez znaku nowej linii,
Example:
zawartość pliku
gets.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset memcmp memchr str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <errno.h> /* for errno constant, error constants, */ int main(int argc, char **argv) { char buffer[1024]; char *strptr; if (argc<1) { printf("Usage: %s\n", argv[0]); return 1; } printf("%s: strptr=gets(buffer): ", argv[0]); fflush(stdout); strptr=gets(buffer); printf("%s: strptr=gets(buffer): buffer=|%s| strptr=|%s|\n", argv[0], buffer, strptr); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/getsw oczekiwaniu programu na stosowne argumenty należy wpisać (oraz nacisnąc klawisz Enter wpisany ciąg znaków został odczytany):
dowolny ciąg znakówrezultat będzie zależny od podanych danych po wywołaniu programu:
/home/local/code/ansiccode/strings/gets: strptr=gets(buffer): dowolny ciąg znaków /home/local/code/ansiccode/strings/gets: strptr=gets(buffer): buffer=|dowolny ciąg znaków| strptr=|dowolny ciąg znaków|
#top index¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
index()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
index()
jest następująca:/* Find the first occurrence of C in S (same as strchr). */ extern char *index (__const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja index() przeszukuje łańcuch znaków (wskaźnik do łańcucha znaków) podany w argumencie __s w poszukiwaniu znaku przekazanego w argumencie __c i zwraca wskaźnik do łańcucha znaków do miejsca rozpoczynającego się od znalezionego znaku. W przypadku gdy poszukiwany znak nie zostanie znaleziony zwracany jest NULL.
Argumenty:
const char *__s - łańcuch znaków (wskaźnik do łańcucha znaków) w którym poszukiwany jest znak przekazany w argumencie __c.
int __c - poszukiwany znak w łańcuchu znaków przekazanym w argumencie __s.
Zwracana wartość:
char * - wskaźnik do łańcucha znaków do miejsca rozpoczynającego się od znalezionego znaku lub w przypadku gdy znak nie został znaleziony zwracany jest NULL.
Argumenty:
const char *__s - łańcuch znaków (wskaźnik do łańcucha znaków) w którym poszukiwany jest znak przekazany w argumencie __c.
int __c - poszukiwany znak w łańcuchu znaków przekazanym w argumencie __s.
Zwracana wartość:
char * - wskaźnik do łańcucha znaków do miejsca rozpoczynającego się od znalezionego znaku lub w przypadku gdy znak nie został znaleziony zwracany jest NULL.
#top isalnum¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isalnum()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isalnum()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define isalnum(c) __isctype((c), _ISalnum) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isalnum() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem alfanumerycznym. Jeśli znak przekazany w argumencie wywołania jest znakiem alfanumerycznym funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0. Wywołanie funkcji isalnum(c) jest równoważne do wywołania (isalpha(c) || isdigit(c)).
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem alfanumeryczym.
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem alfanumeryczym.
Zwracana wartość:
int -
#top isalpha¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isalpha()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isalpha()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define isalpha(c) __isctype((c), _ISalpha) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isalpha() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem alfabetycznym. Jeśli znak przekazany w argumencie wywołania jest znakiem alfabatycznym funkcja zwraca wartość różną od 0, w przeciwnym razie funkcja zwraca 0. Wywołanie funkcji isalpha(c) jest równoważne do wywołania (isupper(c) || islower(c)).
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem alfabetycznym.
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem alfabetycznym.
Zwracana wartość:
int -
Example:
zawartość pliku
isalpha.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <ctype.h> int main(int argc, char **argv) { char *self; int result; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-char>\n", argv[0]); printf("Examples:\n"); printf(" %s '0a cdglp. UX'\n", argv[0]); printf(" %s 'A@ ^VcdgL^V^V'$'\\t''ux'\n", argv[0]); return 0; } if (strlen(argv[1])<12) { printf("%s: To short argument '%s', require minimum 12 characters.\n", self, argv[1]); return 1; } result=isalnum(argv[1][0]); printf("%s: result=isalnum(argv[1][0]='%c'(0x%02X)): result=%d\n", self, argv[1][0], argv[1][0], result); result=isalpha(argv[1][1]); printf("%s: result=isalpha(argv[1][1]='%c'(0x%02X)): result=%d\n", self, argv[1][1], argv[1][1], result); result=isblank(argv[1][2]); printf("%s: result=isblank(argv[1][2]='%c'(0x%02X)): result=%d\n", self, argv[1][2], argv[1][2], result); result=iscntrl(argv[1][3]); printf("%s: result=iscntrl(argv[1][3]='%c'(0x%02X)): result=%d\n", self, argv[1][3], argv[1][3], result); result=isdigit(argv[1][4]); printf("%s: result=isdigit(argv[1][4]='%c'(0x%02X)): result=%d\n", self, argv[1][4], argv[1][4], result); result=isgraph(argv[1][5]); printf("%s: result=isgraph(argv[1][5]='%c'(0x%02X)): result=%d\n", self, argv[1][5], argv[1][5], result); result=islower(argv[1][6]); printf("%s: result=islower(argv[1][6]='%c'(0x%02X)): result=%d\n", self, argv[1][6], argv[1][6], result); result=isprint(argv[1][7]); printf("%s: result=isprint(argv[1][7]='%c'(0x%02X)): result=%d\n", self, argv[1][7], argv[1][7], result); result=ispunct(argv[1][8]); printf("%s: result=ispunct(argv[1][8]='%c'(0x%02X)): result=%d\n", self, argv[1][8], argv[1][8], result); result=isspace(argv[1][9]); printf("%s: result=isspace(argv[1][9]='%c'(0x%02X)): result=%d\n", self, argv[1][8], argv[1][9], result); result=isupper(argv[1][10]); printf("%s: result=isupper(argv[1][10]='%c'(0x%02X)): result=%d\n", self, argv[1][10], argv[1][10], result); result=isxdigit(argv[1][11]); printf("%s: result=isxdigit(argv[1][11]='%c'(0x%02X)): result=%d\n", self, argv[1][11], argv[1][11], result); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/isalphaprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/isalpha <some-char> Examples: /home/local/code/ansiccode/strings/isalpha '0acglp. U' /home/local/code/ansiccode/strings/isalpha 'A@^VgL^V^V'$'\t''u'
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/isalpha '0acglp. U' /home/local/code/ansiccode/strings/isalpha 'A@^VgL^V^V'$'\t''u'rezultat będzie zależny od podanych argumentów wywołania programu:
isalpha: result=isalnum(argv[1][0]='0'(0x30)): result=8 isalpha: result=isalpha(argv[1][1]='a'(0x61)): result=1024 isalpha: result=isblank(argv[1][2]=' '(0x20)): result=1 isalpha: result=iscntrl(argv[1][3]='c'(0x63)): result=0 isalpha: result=isdigit(argv[1][4]='d'(0x64)): result=0 isalpha: result=isgraph(argv[1][5]='g'(0x67)): result=32768 isalpha: result=islower(argv[1][6]='l'(0x6C)): result=512 isalpha: result=isprint(argv[1][7]='p'(0x70)): result=16384 isalpha: result=ispunct(argv[1][8]='.'(0x2E)): result=4 isalpha: result=isspace(argv[1][9]='.'(0x20)): result=8192 isalpha: result=isupper(argv[1][10]='U'(0x55)): result=256 isalpha: result=isxdigit(argv[1][11]='X'(0x58)): result=0 isalpha: result=isalnum(argv[1][0]='A'(0x41)): result=8 isalpha: result=isalpha(argv[1][1]='@'(0x40)): result=0 isalpha: result=isblank(argv[1][2]=' '(0x20)): result=1 isalpha: result=iscntrl(argv[1][3]=''(0x16)): result=2 isalpha: result=isdigit(argv[1][4]='c'(0x63)): result=0 isalpha: result=isgraph(argv[1][5]='d'(0x64)): result=32768 isalpha: result=islower(argv[1][6]='g'(0x67)): result=512 isalpha: result=isprint(argv[1][7]='L'(0x4C)): result=16384 isalpha: result=ispunct(argv[1][8]=''(0x16)): result=0 isalpha: result=isspace(argv[1][9]=''(0x16)): result=0 isalpha: result=isupper(argv[1][10]=' '(0x09)): result=0 isalpha: result=isxdigit(argv[1][11]='u'(0x75)): result=0
#top isblank¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isblank()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isblank()
jest następująca:# ifdef __USE_ISOC99 # define isblank(c) __isctype((c), _ISblank) #endif
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isblank() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem "blank" (spacja, tabulator). Jeśli znak przekazany w argumencie wywołania jest znakiem "blank" funkcja zwraca wartość różną od 0, w przecuwnym razie funckja zwraca 0.
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem "blank" (spacja, tabulator).
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem "blank" (spacja, tabulator).
Zwracana wartość:
int -
#top iscntrl¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
iscntrl()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
iscntrl()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define iscntrl(c) __isctype((c), _IScntrl) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja iscntrl() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem kontrolnym. Jeśli znak przekazany w argumencie wywołania jest znakiem kontrolnym funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0.
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem kontrolnym.
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem kontrolnym.
Zwracana wartość:
int -
#top isdigit¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isdigit()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isdigit()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define isdigit(c) __isctype((c), _ISdigit) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isdigit() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem numerycznym (cyfrą od 0 do 9). Jeśli znak przekazany w argumencie wywołania jest znakiem numerycznym (cyfrą) funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0.
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem numerycznym (cyfrą od 0 do 9).
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem numerycznym (cyfrą od 0 do 9).
Zwracana wartość:
int -
#top isgraph¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isgraph()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isgraph()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define isgraph(c) __isctype((c), _ISgraph) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isgraph() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem drukowalnym z wyłączeniem spacji (z pominięciem spacji). Jeśli znak przekazany w argumencie wywołania jest znakiem drukowalnym z wyłączeniem spacji funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0. Funkcja isgraph() ma analogiczne działanie do funkcji isprint() z różnicą dotyczącą pomijania spacji.
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem drukowalnym z wyłączeniem spacji (z pominięciem spacji).
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem drukowalnym z wyłączeniem spacji (z pominięciem spacji).
Zwracana wartość:
int -
#top islower¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
islower()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
islower()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define islower(c) __isctype((c), _ISlower) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja islower() sprawdza czy znak przekazany w argumencie wywołania c jest "małą" literą w znaku alfabetycznym. Jeśli znak przekazany w argumencie wywołania jest "małą literą" znaku alfabetycznego funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0.
Argumenty:
int c - znak który jest sprawdzany czy jest "małą" literą w znaku alfabetycznym.
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest "małą" literą w znaku alfabetycznym.
Zwracana wartość:
int -
#top isprint¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isprint()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isprint()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define isprint(c) __isctype((c), _ISprint) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isprint() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem drukowalnym włącznie ze spacją. Jeśli znak przekazany w argumencie wywołania jest znakiem drukowalnym włącznie ze spacją funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0. Funkcja isgraph() ma analogiczne działanie do funkcji isprint() z różnicą dotyczącą pomijania spacji.
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem drukowalnym włącznie ze spacją.
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem drukowalnym włącznie ze spacją.
Zwracana wartość:
int -
#top ispunct¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
ispunct()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
ispunct()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define ispunct(c) __isctype((c), _ISpunct) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja ispunct() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem drukowalnym z pominięciem spacji i znaków alfanumerycznych (znakiem drukowalnym, który nie jest spacją ani znakiem alfanumerycznym, które są drukowalne). Jeśli znak przekazany w argumencie wywołania jest znakiem drukowalnym z pominięciem spacji i znaków alfanumerycznych funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0.
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem drukowalnym z pominięciem spacji i znaków alfanumerycznych (znakiem drukowalnym, który nie jest spacją ani znakiem alfanumerycznym, które są drukowalne).
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem drukowalnym z pominięciem spacji i znaków alfanumerycznych (znakiem drukowalnym, który nie jest spacją ani znakiem alfanumerycznym, które są drukowalne).
Zwracana wartość:
int -
#top isspace¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isspace()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isspace()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define isspace(c) __isctype((c), _ISspace) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isspace() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem "białym". W "C" i "POSIX" locales, są to następujące znaki: spacja (
Argumenty:
int c - znak który jest sprawdzany czy jest znakiem "białym".
Zwracana wartość:
int -
\s
), form-feed (\f
), nowa linia (\n
) znak powrotu karetki (\r
), tabulator horyzontalny (\t
), i tabulator wertykalny (\v
). Jeśli znak przekazany w argumencie wywołania jest znakiem "białym" funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0.Argumenty:
int c - znak który jest sprawdzany czy jest znakiem "białym".
Zwracana wartość:
int -
#top isupper¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isupper()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isupper()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define isupper(c) __isctype((c), _ISupper) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isupper() sprawdza czy znak przekazany w argumencie wywołania c jest "dużą" literą w znaku alfabetycznym. Jeśli znak przekazany w argumencie wywołania jest "dużą literą" znaku alfabetycznego funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0.
Argumenty:
int c - znak który jest sprawdzany czy jest "dużą" literą w znaku alfabetycznym.
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest "dużą" literą w znaku alfabetycznym.
Zwracana wartość:
int -
#top isxdigit¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
isxdigit()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
isxdigit()
jest następująca:#if !defined __NO_CTYPE && !defined __cplusplus [...] # define isxdigit(c) __isctype((c), _ISxdigit) [...] #endif /* Not __NO_CTYPE. */
Powiązane:
isalnum(), isalpha(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),
Opis:
Funkcja isxdigit() sprawdza czy znak przekazany w argumencie wywołania c jest znakiem heksadecymalnym (Szesnastkowy System Liczbowy) (jednym z: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F). Jeśli znak przekazany w argumencie wywołania jest znakiem heksadecymalnym (Szesnastkowy System Liczbowy) funkcja zwraca wartość różna od 0, w przeciwnym razie funkcja zwraca 0.
Argumenty:
int c - znak który jest sprawdzany czy jest .
Zwracana wartość:
int -
Argumenty:
int c - znak który jest sprawdzany czy jest .
Zwracana wartość:
int -
#top localeconv¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
localeconv()
znajduje się w pliku nagłówkowym locale.h
.Deklaracja funkcji
localeconv()
jest następująca:/* Return the numeric/monetary information for the current locale. */ extern struct lconv *localeconv (void) __THROW;
Powiązane:
localeconv(),
Opis:
Funkcja localeconv() zwraca wskaźnik do struktury struct lconv zawierającej informacje dotyczące formatu liczb dla bieżącego języka używanego w środowisku (locale w kategorii
Argumenty:
Funkcja nie przyjmuje żadnych argumentów.
Zwracana wartość:
struct lconv * - wskaźnik do struktury zawierającej informacje dotyczące formatu liczb dla bieżącego języka używanego w środowisku.
LC_NUMERIC
i LC_MONETARY
). Programy używające funkcji m.in. printf() i strfmon() mogą zwracać wyniki zależne od ustawień locale w danym środowisku.Argumenty:
Funkcja nie przyjmuje żadnych argumentów.
Zwracana wartość:
struct lconv * - wskaźnik do struktury zawierającej informacje dotyczące formatu liczb dla bieżącego języka używanego w środowisku.
#top memccpy¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
memccpy()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
memccpy()
jest następująca:/* Copy no more than N bytes of SRC to DEST, stopping when C is found. Return the position in DEST one byte past where C was copied, or NULL if C was not found in the first N bytes of SRC. */ #if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) __THROW __nonnull ((1, 2)); #endif /* SVID. */
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja memccpy() kopiuje z adresu podanego w argumencie __src do adresu podanego w argumencie __dest ilość bajtów określoną argumentem __n. Jeśli w kopiowanych danych zostanie znaleziony bajt określony w argumencie __c to kopiowanie jest przerywane i zwracany jest adres znalezionego bajtu __c umieszczonego w skopiowanych danych do adresu podanego w argumencie __dest, w przeciwnym przypadku kopiowana jest ilość danych określone argumentem __n i zwracany jest NULL.
Argumenty:
void *__restrict __dest - wskaźnik do obszaru pamięci do którego zostaną skopiowane dane z argumentu __src.
const void *__restrict __src - wskaźnik do obszaru pamięci z którego zostaną skopiowane dane do argumentu __dest.
int __c - argument określający bajt, który jeśli zostanie znaleziony w danych znajdujących się pod adresem __src zakończy kopiowane danych do __dest.
size_t __n - maksymalna liczba bajtów do skopiowania (liczba skopiowanych bajtów może być mniejsza jeśli w danych wskazywanych argumentem __src zostanie znaleziony bajt określony w argumencie __c).
Zwracana wartość:
void * - wskaźnik wkazujący na bajt znaleziony bajt określony argumentem __c w skopiowanych danych do adresu określonego argumentem __dest. Jeśli podany w argumencie __c bajt nie zostanie znaleziony zwracany jest NULL.
Argumenty:
void *__restrict __dest - wskaźnik do obszaru pamięci do którego zostaną skopiowane dane z argumentu __src.
const void *__restrict __src - wskaźnik do obszaru pamięci z którego zostaną skopiowane dane do argumentu __dest.
int __c - argument określający bajt, który jeśli zostanie znaleziony w danych znajdujących się pod adresem __src zakończy kopiowane danych do __dest.
size_t __n - maksymalna liczba bajtów do skopiowania (liczba skopiowanych bajtów może być mniejsza jeśli w danych wskazywanych argumentem __src zostanie znaleziony bajt określony w argumencie __c).
Zwracana wartość:
void * - wskaźnik wkazujący na bajt znaleziony bajt określony argumentem __c w skopiowanych danych do adresu określonego argumentem __dest. Jeśli podany w argumencie __c bajt nie zostanie znaleziony zwracany jest NULL.
#top memchr¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
memchr()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
memchr()
jest następująca:/* Search N bytes of S for C. */ extern void *memchr (__const void *__s, int __c, size_t __n) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja memchr() przeszukuje obszar pamięci wskazywany przez wskaźnik podany w argumencie __s o wielkości określonej argumentem __n w poszukiwaniu bajtu określonego argumentem __c i zwraca adres do znalezionego argumentu. W przypadku gdy poszukiwany bajt nie zostanie znaleziony zwracany jest NULL.
Argumenty:
const void *__s - wskaźnik do obszaru pamięci w którym poszukiwany jest znak określony argumentem __c.
int __c - poszukiwany znak w adresie pamięci określonym argumentem __s.
size_t __n - argument ograniczający obszar pamięci który jest przeglądany w poszukiwaniu znaku.
Zwracana wartość:
void * - adres pamięci wskazujący na znaleziony znak lub w przypadku gdy znak nie został znaleziony zwracany jest NULL.
Argumenty:
const void *__s - wskaźnik do obszaru pamięci w którym poszukiwany jest znak określony argumentem __c.
int __c - poszukiwany znak w adresie pamięci określonym argumentem __s.
size_t __n - argument ograniczający obszar pamięci który jest przeglądany w poszukiwaniu znaku.
Zwracana wartość:
void * - adres pamięci wskazujący na znaleziony znak lub w przypadku gdy znak nie został znaleziony zwracany jest NULL.
#top memcmp¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
memcmp()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
memcmp()
jest następująca:/* Compare N bytes of S1 and S2. */ extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
memcmp(), strcoll(), strncasecmp(), strncmp(), strverscmp(),
Opis:
Funkcja memcmp() porównuje ze sobą określone argumentem __n bajtów obszary pamięci określone wskaźniki podane w argumentach __s1 oraz __s2 (porównywane jest __n bajtów obszarów pamięci określonych wskaźnikami __s1 oraz __s2) i zwraca wynik porównania: 1 lub 0 lub -1
Argumenty:
const void *__s1 - wskaźnik do obszaru pamięci, który ma zostać porównany z argumentem __s2.
const void *__s2 - wskaźnik do obszaru pamięci, który ma zostać porównany z argumentem __s1.
size_t __n - wielkość obszarów pamięci wskazywanych argumentami __s1 oraz __s2, która zostanie porównana.
Zwracana wartość:
int - wynik porównania obszarów pamięci wskazywanych przez wskaźniki podane jako argumenty wywołania funkcji.
Argumenty:
const void *__s1 - wskaźnik do obszaru pamięci, który ma zostać porównany z argumentem __s2.
const void *__s2 - wskaźnik do obszaru pamięci, który ma zostać porównany z argumentem __s1.
size_t __n - wielkość obszarów pamięci wskazywanych argumentami __s1 oraz __s2, która zostanie porównana.
Zwracana wartość:
int - wynik porównania obszarów pamięci wskazywanych przez wskaźniki podane jako argumenty wywołania funkcji.
Example:
zawartość pliku
memcmp.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int hex2bin(char *buffdata, const int buffsize) { char hexchar[256]; int ihex, ibin; memset(hexchar, 0x00, sizeof(hexchar)); hexchar[0x30]=0x00; hexchar[0x31]=0x01; hexchar[0x32]=0x02; hexchar[0x33]=0x03; hexchar[0x34]=0x04; hexchar[0x35]=0x05; hexchar[0x36]=0x06; hexchar[0x37]=0x07; hexchar[0x38]=0x08; hexchar[0x39]=0x09; hexchar[0x41]=0x0A; hexchar[0x42]=0x0B; hexchar[0x43]=0x0C; hexchar[0x44]=0x0D; hexchar[0x45]=0x0E; hexchar[0x46]=0x0F; hexchar[0x61]=0x0A; hexchar[0x62]=0x0B; hexchar[0x63]=0x0C; hexchar[0x64]=0x0D; hexchar[0x65]=0x0E; hexchar[0x66]=0x0F; ibin=0; for (ihex=0;ihex<buffsize;ihex++) { if (buffdata[ihex]==0x5C && ihex+3<buffsize && (buffdata[ihex+1]==0x58||buffdata[ihex+1]==0x78) && ((0x30<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x39) || (0x41<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x46) || (0x61<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x66)) && ((0x30<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x39) || (0x41<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x46) || (0x61<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x66)) ) { buffdata[ibin]= (hexchar[ (unsigned char)buffdata[ihex+2] ]<<4) + (hexchar[ (unsigned char)buffdata[ihex+3] ]); ihex=ihex+3; ibin++; continue; } if (ihex!=ibin) buffdata[ibin]=buffdata[ihex]; ibin++; } for (ihex=ibin;ihex<buffsize;ihex++) buffdata[ihex]=0x00; return ibin; } int main(int argc, char **argv) { char *self; char contbuff1[1024]; char contbuff2[64]; int sizebuff1; int sizebuff2; int result; int i; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<3) { printf("Usage: %s <some-data>\n", argv[0]); printf("Examples:\n"); printf(" %s \"\\x00\\x01\\x02\\x03\" \"\\x00\\x01\\x02\\x03\"\n", argv[0]); printf(" %s \"\\x00\\x01\\x02\\x03\" \"\\x01\\x02\\x03\\x00\"\n", argv[0]); printf(" %s \"\\x01\\x02\\x03\\x00\" \"\\x00\\x01\\x02\\x03\"\n", argv[0]); printf(" %s \"\\x00\\x01\\x02\\x03\" \"\\x02\\x03\\x00\\x01\"\n", argv[0]); printf(" %s \"\\x02\\x03\\x00\\x01\" \"\\x00\\x01\\x02\\x03\"\n", argv[0]); return 0; } memset(contbuff1, 0x00, sizeof(contbuff1)); memset(contbuff2, 0x00, sizeof(contbuff2)); strncpy(contbuff1, argv[1], sizeof(contbuff1)); strncpy(contbuff2, argv[2], sizeof(contbuff2)); sizebuff1=hex2bin(contbuff1, strlen(contbuff1)); sizebuff2=hex2bin(contbuff2, strlen(contbuff2)); printf("%s: contbuff1=", self); for (i=0;i<sizebuff1;i++) { printf("%02X ", contbuff1[i]); } printf("\n"); printf("%s: contbuff2=", self); for (i=0;i<sizebuff2;i++) { printf("%02X ", contbuff2[i]); } printf("\n"); printf("%s: memptr=memcmp(contbuff1=%p, contbuff2=%p, sizebuff1<sizebuff2?sizebuff1=%d:sizebuff2=%d):\n", self, (void*)contbuff1, (void*)contbuff2, sizebuff1, sizebuff2); result=memcmp(contbuff1, contbuff2, sizebuff1<sizebuff2?sizebuff1:sizebuff2); printf("%s: memptr=memcmp(contbuff1=%p, contbuff2=%p, sizebuff1<sizebuff2?sizebuff1=%d:sizebuff2=%d): result=%d\n", self, (void*)contbuff1, (void*)contbuff2, sizebuff1, sizebuff2, result); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/memcmpprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/memcmp <some-data> Examples: /home/local/code/ansiccode/strings/memcmp "\x00\x01\x02\x03" "\x00\x01\x02\x03" /home/local/code/ansiccode/strings/memcmp "\x00\x01\x02\x03" "\x01\x02\x03\x00" /home/local/code/ansiccode/strings/memcmp "\x01\x02\x03\x00" "\x00\x01\x02\x03" /home/local/code/ansiccode/strings/memcmp "\x00\x01\x02\x03" "\x02\x03\x00\x01" /home/local/code/ansiccode/strings/memcmp "\x02\x03\x00\x01" "\x00\x01\x02\x03"
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/memcmp "\x00\x01\x02\x03" "\x00\x01\x02\x03" /home/local/code/ansiccode/strings/memcmp "\x00\x01\x02\x03" "\x01\x02\x03\x00" /home/local/code/ansiccode/strings/memcmp "\x01\x02\x03\x00" "\x00\x01\x02\x03" /home/local/code/ansiccode/strings/memcmp "\x00\x01\x02\x03" "\x02\x03\x00\x01" /home/local/code/ansiccode/strings/memcmp "\x02\x03\x00\x01" "\x00\x01\x02\x03"rezultat będzie zależny od podanych argumentów wywołania programu:
memcmp: contbuff1=00 01 02 03 memcmp: contbuff2=00 01 02 03 memcmp: memptr=memcmp(contbuff1=0xbf94aa88, contbuff2=0xbf94ae88, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): memcmp: memptr=memcmp(contbuff1=0xbf94aa88, contbuff2=0xbf94ae88, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): result=0 memcmp: contbuff1=00 01 02 03 memcmp: contbuff2=01 02 03 00 memcmp: memptr=memcmp(contbuff1=0xbf878d08, contbuff2=0xbf879108, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): memcmp: memptr=memcmp(contbuff1=0xbf878d08, contbuff2=0xbf879108, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): result=-1 memcmp: contbuff1=01 02 03 00 memcmp: contbuff2=00 01 02 03 memcmp: memptr=memcmp(contbuff1=0xbfb72db8, contbuff2=0xbfb731b8, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): memcmp: memptr=memcmp(contbuff1=0xbfb72db8, contbuff2=0xbfb731b8, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): result=1 memcmp: contbuff1=00 01 02 03 memcmp: contbuff2=02 03 00 01 memcmp: memptr=memcmp(contbuff1=0xbf85ca98, contbuff2=0xbf85ce98, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): memcmp: memptr=memcmp(contbuff1=0xbf85ca98, contbuff2=0xbf85ce98, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): result=-1 memcmp: contbuff1=02 03 00 01 memcmp: contbuff2=00 01 02 03 memcmp: memptr=memcmp(contbuff1=0xbfb550b8, contbuff2=0xbfb554b8, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): memcmp: memptr=memcmp(contbuff1=0xbfb550b8, contbuff2=0xbfb554b8, sizebuff1<sizebuff2?sizebuff1=4:sizebuff2=4): result=1
#top memcpy¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
memcpy()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
memcpy()
jest następująca:/* Copy N bytes of SRC to DEST. */ extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __THROW __nonnull ((1, 2));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja memcpy() kopiuje z adresu podanego w argumencie __src do adresu podanego w argumencie __dest ilość bajtów określoną argumentem __n i zwraca adres do przekazany w argumencie __dest. Przestrzenie adresowe przekazane w argumentach __src i __dest nie powinny się pokrywać, jeśli przestrenie adresowe się pokrywają należy używać funkcji memmove().
Argumenty:
void *__restrict __dest - wskaźnik do obszaru pamięci do którego zostaną skopiowane dane z argumentu __src.
const void *__restrict __src - wskaźnik do obszaru pamięci z którego zostaną skopiowane dane do argumentu __dest.
size_t __n - liczba bajtów do skopiowania.
Zwracana wartość:
void * - wskaźnik do obszaru pamięci przekazanego w argumencie __dest.
Argumenty:
void *__restrict __dest - wskaźnik do obszaru pamięci do którego zostaną skopiowane dane z argumentu __src.
const void *__restrict __src - wskaźnik do obszaru pamięci z którego zostaną skopiowane dane do argumentu __dest.
size_t __n - liczba bajtów do skopiowania.
Zwracana wartość:
void * - wskaźnik do obszaru pamięci przekazanego w argumencie __dest.
Example:
zawartość pliku
memcpy.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int hex2bin(char *buffdata, const int buffsize) { char hexchar[256]; int ihex, ibin; memset(hexchar, 0x00, sizeof(hexchar)); hexchar[0x30]=0x00; hexchar[0x31]=0x01; hexchar[0x32]=0x02; hexchar[0x33]=0x03; hexchar[0x34]=0x04; hexchar[0x35]=0x05; hexchar[0x36]=0x06; hexchar[0x37]=0x07; hexchar[0x38]=0x08; hexchar[0x39]=0x09; hexchar[0x41]=0x0A; hexchar[0x42]=0x0B; hexchar[0x43]=0x0C; hexchar[0x44]=0x0D; hexchar[0x45]=0x0E; hexchar[0x46]=0x0F; hexchar[0x61]=0x0A; hexchar[0x62]=0x0B; hexchar[0x63]=0x0C; hexchar[0x64]=0x0D; hexchar[0x65]=0x0E; hexchar[0x66]=0x0F; ibin=0; for (ihex=0;ihex<buffsize;ihex++) { if (buffdata[ihex]==0x5C && ihex+3<buffsize && (buffdata[ihex+1]==0x58||buffdata[ihex+1]==0x78) && ((0x30<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x39) || (0x41<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x46) || (0x61<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x66)) && ((0x30<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x39) || (0x41<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x46) || (0x61<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x66)) ) { buffdata[ibin]= (hexchar[ (unsigned char)buffdata[ihex+2] ]<<4) + (hexchar[ (unsigned char)buffdata[ihex+3] ]); ihex=ihex+3; ibin++; continue; } if (ihex!=ibin) buffdata[ibin]=buffdata[ihex]; ibin++; } for (ihex=ibin;ihex<buffsize;ihex++) buffdata[ihex]=0x00; return ibin; } int main(int argc, char **argv) { char *self; char contdest[1024]; char contsrcs[64]; int destsize; int srcssize; void *memptr; int i; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<3) { printf("Usage: %s <some-data>\n", argv[0]); printf("Examples:\n"); printf(" %s \"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F\" \"\\x00\\x01\\x02\\x03\"\n", argv[0]); printf(" %s \"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F\" \"\\x00\\x01\\x02\\x03\"\n", argv[0]); return 0; } memset(contdest, 0x00, sizeof(contdest)); memset(contsrcs, 0x00, sizeof(contsrcs)); strncpy(contdest, argv[1], sizeof(contdest)); strncpy(contsrcs, argv[2], sizeof(contsrcs)); destsize=hex2bin(contdest, strlen(contdest)); srcssize=hex2bin(contsrcs, strlen(contsrcs)); printf("%s: contdest=", self); for (i=0;i<destsize;i++) { printf("%02X ", contdest[i]); } printf("\n"); printf("%s: contsrcs=", self); for (i=0;i<srcssize;i++) { printf("%02X ", contsrcs[i]); } printf("\n"); memset(contdest, 0x00, sizeof(contdest)); memset(contsrcs, 0x00, sizeof(contsrcs)); strncpy(contdest, argv[1], sizeof(contdest)); strncpy(contsrcs, argv[2], sizeof(contsrcs)); destsize=hex2bin(contdest, strlen(contdest)); srcssize=hex2bin(contsrcs, strlen(contsrcs)); printf("%s: memptr=memcpy(contdest(%p)+destsize(%d)=%p, contsrcs=%p, srcssize=%d):\n", self, contdest, destsize, (void*)(contdest+destsize), (void*)contsrcs, srcssize); memptr=memcpy(contdest+destsize, contsrcs, srcssize); destsize=destsize+srcssize; printf("%s: memptr=memcpy(contdest(%p)+destsize(%d)=%p, contsrcs=%p, srcssize=%d): memptr=%p (char*)memptr-contdest=%d\n", self, contdest, destsize, (void*)(contdest+destsize), (void*)contsrcs, srcssize, memptr, (int)((char*)memptr-contdest)); printf("%s: contdest=", self); for (i=0;i<destsize;i++) { printf("%02X ", contdest[i]); } printf("\n"); printf("%s: contsrcs=", self); for (i=0;i<srcssize;i++) { printf("%02X ", contsrcs[i]); } printf("\n"); printf("%s: memptr =", self); for (i=0;i<destsize;i++) { printf("%02X ", ((char*)memptr)[i]); } printf("\n"); memset(contdest, 0x00, sizeof(contdest)); memset(contsrcs, 0x00, sizeof(contsrcs)); strncpy(contdest, argv[1], sizeof(contdest)); strncpy(contsrcs, argv[2], sizeof(contsrcs)); destsize=hex2bin(contdest, strlen(contdest)); srcssize=hex2bin(contsrcs, strlen(contsrcs)); printf("%s: memptr=memcpy(contdest(%p)+destsize(%d)=%p, contsrcs=%p, srcssize=%d):\n", self, contdest, destsize, (void*)(contdest+destsize), (void*)contsrcs, srcssize); memptr=memcpy(contdest+destsize, contsrcs, srcssize); destsize=destsize+srcssize; printf("%s: memptr=memcpy(contdest(%p)+destsize(%d)=%p, contsrcs=%p, srcssize=%d): memptr=%p (char*)memptr-contdest=%d\n", self, contdest, destsize, (void*)(contdest+destsize), (void*)contsrcs, srcssize, memptr, (int)((char*)memptr-contdest)); printf("%s: contdest=", self); for (i=0;i<destsize;i++) { printf("%02X ", contdest[i]); } printf("\n"); printf("%s: contsrcs=", self); for (i=0;i<srcssize;i++) { printf("%02X ", contsrcs[i]); } printf("\n"); printf("%s: memptr =", self); for (i=0;i<destsize;i++) { printf("%02X ", ((char*)memptr)[i]); } printf("\n"); memset(contdest, 0x00, sizeof(contdest)); memset(contsrcs, 0x00, sizeof(contsrcs)); strncpy(contdest, argv[1], sizeof(contdest)); strncpy(contsrcs, argv[2], sizeof(contsrcs)); destsize=hex2bin(contdest, strlen(contdest)); srcssize=hex2bin(contsrcs, strlen(contsrcs)); #if defined(HAVE_MEMPCPY) printf("%s: memptr=mempcpy(contdest(%p)+destsize(%d)=%p, contsrcs=%p, srcssize=%d):\n", self, contdest, destsize, (void*)(contdest+destsize), (void*)contsrcs, srcssize); memptr=mempcpy(contdest+destsize, contsrcs, srcssize); destsize=destsize+srcssize; printf("%s: memptr=mempcpy(contdest(%p)+destsize(%d)=%p, contsrcs=%p, srcssize=%d): memptr=%p (char*)memptr-contdest=%d\n", self, contdest, destsize, (void*)(contdest+destsize), (void*)contsrcs, srcssize, memptr, (int)((char*)memptr-contdest)); printf("%s: contdest=", self); for (i=0;i<destsize;i++) { printf("%02X ", contdest[i]); } printf("\n"); printf("%s: contsrcs=", self); for (i=0;i<srcssize;i++) { printf("%02X ", contsrcs[i]); } printf("\n"); printf("%s: memptr =", self); for (i=0;i<destsize;i++) { printf("%02X ", ((char*)memptr)[i]); } printf("\n"); #else /* mempcpy() is not available on this OS platform !!! */ printf("%s: mempcpy() is not available on this OS platform !!!\n", self); #endif memset(contdest, 0x00, sizeof(contdest)); memset(contsrcs, 0x00, sizeof(contsrcs)); strncpy(contdest, argv[1], sizeof(contdest)); strncpy(contsrcs, argv[2], sizeof(contsrcs)); destsize=hex2bin(contdest, strlen(contdest)); srcssize=hex2bin(contsrcs, strlen(contsrcs)); printf("%s: memptr=memmove(contdest=%p, contsrcs=%p, srcssize=%d):\n", self, (void*)contdest, (void*)contsrcs, srcssize); memptr=memmove(contdest+8, contdest+4, 4); destsize=destsize+4; printf("%s: memptr=memmove(contdest=%p, contsrcs=%p, srcssize=%d): memptr=%p (char*)memptr-contdest=%d\n", self, (void*)contdest, (void*)contsrcs, srcssize, memptr, (int)((char*)memptr-contdest)); printf("%s: contdest=", self); for (i=0;i<destsize;i++) { printf("%02X ", contdest[i]); } printf("\n"); printf("%s: contsrcs=", self); for (i=0;i<srcssize;i++) { printf("%02X ", contsrcs[i]); } printf("\n"); printf("%s: memptr =", self); for (i=0;i<destsize;i++) { printf("%02X ", ((char*)memptr)[i]); } printf("\n"); memset(contdest, 0x00, sizeof(contdest)); memset(contsrcs, 0x00, sizeof(contsrcs)); strncpy(contdest, argv[1], sizeof(contdest)); strncpy(contsrcs, argv[2], sizeof(contsrcs)); destsize=hex2bin(contdest, strlen(contdest)); srcssize=hex2bin(contsrcs, strlen(contsrcs)); printf("%s: memptr=memmove(contdest=%p, contsrcs=%p, srcssize=%d):\n", self, (void*)contdest, (void*)contsrcs, srcssize); memptr=memmove(contdest+8, contdest+4, 4); destsize=destsize+4; printf("%s: memptr=memmove(contdest=%p, contsrcs=%p, srcssize=%d): memptr=%p (char*)memptr-contdest=%d\n", self, (void*)contdest, (void*)contsrcs, srcssize, memptr, (int)((char*)memptr-contdest)); printf("%s: contdest=", self); for (i=0;i<destsize;i++) { printf("%02X ", contdest[i]); } printf("\n"); printf("%s: contsrcs=", self); for (i=0;i<srcssize;i++) { printf("%02X ", contsrcs[i]); } printf("\n"); printf("%s: memptr =", self); for (i=0;i<destsize;i++) { printf("%02X ", ((char*)memptr)[i]); } printf("\n"); memset(contdest, 0x00, sizeof(contdest)); memset(contsrcs, 0x00, sizeof(contsrcs)); strncpy(contdest, argv[1], sizeof(contdest)); strncpy(contsrcs, argv[2], sizeof(contsrcs)); destsize=hex2bin(contdest, strlen(contdest)); srcssize=hex2bin(contsrcs, strlen(contsrcs)); memset(contdest, 0x00, sizeof(contdest)); memptr=memcpy(contdest, "memmove can be very useful......", strlen("memmove can be very useful......")); printf("%s: memptr=memmove(contdest+20, contsrcs+15, 11): contdest=|%s|\n", self, contdest); memmove(contdest+20, contdest+15, 11); printf("%s: memptr=memmove(contdest+20, contsrcs+15, 11): contdest=|%s|\n", self, contdest); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/memcpyprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/memcpy <some-data> Examples: /home/local/code/ansiccode/strings/memcpy "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x00\x01\x02\x03" /home/local/code/ansiccode/strings/memcpy "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x00\x01\x02\x03"
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/memcpy "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x00\x01\x02\x03" /home/local/code/ansiccode/strings/memcpy "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x00\x01\x02\x03"rezultat będzie zależny od podanych argumentów wywołania programu:
memcpy: contdest=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F memcpy: contsrcs=00 01 02 03 memcpy: memptr=memcpy(contdest(0xbfc35648)+destsize(16)=0xbfc35658, contsrcs=0xbfc35a48, srcssize=4): memcpy: memptr=memcpy(contdest(0xbfc35648)+destsize(20)=0xbfc3565c, contsrcs=0xbfc35a48, srcssize=4): memptr=0xbfc35658 (char*)memptr-contdest=16 memcpy: contdest=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 memcpy: contsrcs=00 01 02 03 memcpy: memptr =00 01 02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=memcpy(contdest(0xbfc35648)+destsize(16)=0xbfc35658, contsrcs=0xbfc35a48, srcssize=4): memcpy: memptr=memcpy(contdest(0xbfc35648)+destsize(20)=0xbfc3565c, contsrcs=0xbfc35a48, srcssize=4): memptr=0xbfc35658 (char*)memptr-contdest=16 memcpy: contdest=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 memcpy: contsrcs=00 01 02 03 memcpy: memptr =00 01 02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=mempcpy(contdest(0xbfc35648)+destsize(16)=0xbfc35658, contsrcs=0xbfc35a48, srcssize=4): memcpy: memptr=mempcpy(contdest(0xbfc35648)+destsize(20)=0xbfc3565c, contsrcs=0xbfc35a48, srcssize=4): memptr=0xbfc3565c (char*)memptr-contdest=20 memcpy: contdest=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 memcpy: contsrcs=00 01 02 03 memcpy: memptr =00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=memmove(contdest=0xbfc35648, contsrcs=0xbfc35a48, srcssize=4): memcpy: memptr=memmove(contdest=0xbfc35648, contsrcs=0xbfc35a48, srcssize=4): memptr=0xbfc35650 (char*)memptr-contdest=8 memcpy: contdest=00 01 02 03 04 05 06 07 04 05 06 07 0C 0D 0E 0F 00 00 00 00 memcpy: contsrcs=00 01 02 03 memcpy: memptr =04 05 06 07 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=memmove(contdest=0xbfc35648, contsrcs=0xbfc35a48, srcssize=4): memcpy: memptr=memmove(contdest=0xbfc35648, contsrcs=0xbfc35a48, srcssize=4): memptr=0xbfc35650 (char*)memptr-contdest=8 memcpy: contdest=00 01 02 03 04 05 06 07 04 05 06 07 0C 0D 0E 0F 00 00 00 00 memcpy: contsrcs=00 01 02 03 memcpy: memptr =04 05 06 07 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=memmove(contdest+20, contsrcs+15, 11): contdest=|memmove can be very useful......| memcpy: memptr=memmove(contdest+20, contsrcs+15, 11): contdest=|memmove can be very very useful.| memcpy: contdest=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F memcpy: contsrcs=00 01 02 03 memcpy: memptr=memcpy(contdest(0xbfac44d8)+destsize(16)=0xbfac44e8, contsrcs=0xbfac48d8, srcssize=4): memcpy: memptr=memcpy(contdest(0xbfac44d8)+destsize(20)=0xbfac44ec, contsrcs=0xbfac48d8, srcssize=4): memptr=0xbfac44e8 (char*)memptr-contdest=16 memcpy: contdest=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 memcpy: contsrcs=00 01 02 03 memcpy: memptr =00 01 02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=memcpy(contdest(0xbfac44d8)+destsize(16)=0xbfac44e8, contsrcs=0xbfac48d8, srcssize=4): memcpy: memptr=memcpy(contdest(0xbfac44d8)+destsize(20)=0xbfac44ec, contsrcs=0xbfac48d8, srcssize=4): memptr=0xbfac44e8 (char*)memptr-contdest=16 memcpy: contdest=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 memcpy: contsrcs=00 01 02 03 memcpy: memptr =00 01 02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=mempcpy(contdest(0xbfac44d8)+destsize(16)=0xbfac44e8, contsrcs=0xbfac48d8, srcssize=4): memcpy: memptr=mempcpy(contdest(0xbfac44d8)+destsize(20)=0xbfac44ec, contsrcs=0xbfac48d8, srcssize=4): memptr=0xbfac44ec (char*)memptr-contdest=20 memcpy: contdest=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 memcpy: contsrcs=00 01 02 03 memcpy: memptr =00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=memmove(contdest=0xbfac44d8, contsrcs=0xbfac48d8, srcssize=4): memcpy: memptr=memmove(contdest=0xbfac44d8, contsrcs=0xbfac48d8, srcssize=4): memptr=0xbfac44e0 (char*)memptr-contdest=8 memcpy: contdest=00 01 02 03 04 05 06 07 04 05 06 07 0C 0D 0E 0F 00 00 00 00 memcpy: contsrcs=00 01 02 03 memcpy: memptr =04 05 06 07 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=memmove(contdest=0xbfac44d8, contsrcs=0xbfac48d8, srcssize=4): memcpy: memptr=memmove(contdest=0xbfac44d8, contsrcs=0xbfac48d8, srcssize=4): memptr=0xbfac44e0 (char*)memptr-contdest=8 memcpy: contdest=00 01 02 03 04 05 06 07 04 05 06 07 0C 0D 0E 0F 00 00 00 00 memcpy: contsrcs=00 01 02 03 memcpy: memptr =04 05 06 07 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 memcpy: memptr=memmove(contdest+20, contsrcs+15, 11): contdest=|memmove can be very useful......| memcpy: memptr=memmove(contdest+20, contsrcs+15, 11): contdest=|memmove can be very very useful.|
#top memmem¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
memmem()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
memmem()
jest następująca:/* Find the first occurrence of NEEDLE in HAYSTACK. NEEDLE is NEEDLELEN bytes long; HAYSTACK is HAYSTACKLEN bytes long. */ extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) __THROW __attribute_pure__ __nonnull ((1, 3));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja memmem() przeszukuje obszar pamięci wskazywany przez wskaźnik podany w argumencie __haystack o wielkości określonej argumentem __haystacklen w poszukiwaniu ciągu bajtów określonych argumentem __needle o wielkości określonej w argumencie __needlelen i zwraca adres do początku znalezionego ciągu bajtów. W przypadku gdy poszukiwany ciąg bajtów nie zostanie znaleziony zwracany jest NULL.
Argumenty:
const void *__haystack - wskaźnik do obszaru pamięci w którym poszukiwany jest ciąg bajtów określony argumentem __needle.
size_t __haystacklen - argument ograniczający obszar pamięci który jest przeglądany w poszukiwaniu ciągu bajtów __needle.
const void *__needle - poszukiwany ciąg bajtów w adresie pamięci określonym argumentem __haystack.
size_t __needlelen - argument określający wielkość poszukiwanego ciągu bajtów określonego argumentem __needle.
Zwracana wartość:
void * - adres pamięci wskazujący na początek znalezionego ciągu bajtów lub w przypadku gdy ciąg bajtow nie został znaleziony zwracany jest NULL.
Argumenty:
const void *__haystack - wskaźnik do obszaru pamięci w którym poszukiwany jest ciąg bajtów określony argumentem __needle.
size_t __haystacklen - argument ograniczający obszar pamięci który jest przeglądany w poszukiwaniu ciągu bajtów __needle.
const void *__needle - poszukiwany ciąg bajtów w adresie pamięci określonym argumentem __haystack.
size_t __needlelen - argument określający wielkość poszukiwanego ciągu bajtów określonego argumentem __needle.
Zwracana wartość:
void * - adres pamięci wskazujący na początek znalezionego ciągu bajtów lub w przypadku gdy ciąg bajtow nie został znaleziony zwracany jest NULL.
Example:
zawartość pliku
memmem.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int hex2bin(char *buffdata, const int buffsize) { char hexchar[256]; int ihex, ibin; memset(hexchar, 0x00, sizeof(hexchar)); hexchar[0x30]=0x00; hexchar[0x31]=0x01; hexchar[0x32]=0x02; hexchar[0x33]=0x03; hexchar[0x34]=0x04; hexchar[0x35]=0x05; hexchar[0x36]=0x06; hexchar[0x37]=0x07; hexchar[0x38]=0x08; hexchar[0x39]=0x09; hexchar[0x41]=0x0A; hexchar[0x42]=0x0B; hexchar[0x43]=0x0C; hexchar[0x44]=0x0D; hexchar[0x45]=0x0E; hexchar[0x46]=0x0F; hexchar[0x61]=0x0A; hexchar[0x62]=0x0B; hexchar[0x63]=0x0C; hexchar[0x64]=0x0D; hexchar[0x65]=0x0E; hexchar[0x66]=0x0F; ibin=0; for (ihex=0;ihex<buffsize;ihex++) { if (buffdata[ihex]==0x5C && ihex+3<buffsize && (buffdata[ihex+1]==0x58||buffdata[ihex+1]==0x78) && ((0x30<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x39) || (0x41<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x46) || (0x61<=buffdata[ihex+2]&&buffdata[ihex+2]<=0x66)) && ((0x30<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x39) || (0x41<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x46) || (0x61<=buffdata[ihex+3]&&buffdata[ihex+3]<=0x66)) ) { buffdata[ibin]= (hexchar[ (unsigned char)buffdata[ihex+2] ]<<4) + (hexchar[ (unsigned char)buffdata[ihex+3] ]); ihex=ihex+3; ibin++; continue; } if (ihex!=ibin) buffdata[ibin]=buffdata[ihex]; ibin++; } for (ihex=ibin;ihex<buffsize;ihex++) buffdata[ihex]=0x00; return ibin; } void *memrmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen) { void *memptr1; void *memptr2; memptr1=memptr2=memmem(haystack, haystacklen, needle, needlelen); while (memptr2!=NULL) { memptr1=memptr2; memptr2=memmem((char*)memptr1+1, haystacklen-((char*)memptr1-(char*)haystack), needle, needlelen); } return memptr1; } int main(int argc, char **argv) { char contdata[1024]; char searched[64]; int contsize; int srchsize; char chfirst[16]; char chlasts[16]; int ifirst; int ilasts; char *memptr; int i; if (argc<5) { printf("Usage: %s <contdata> <searched> <chfirst> <chlasts>\n", argv[0]); printf("Examples:\n"); printf(" %s \"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F\" \"\\x0A\\x0B\\x0C\" \"x08\" \"x08\"\n", argv[0]); printf(" %s \"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F\" \"\\x00\\x01\\x02\" \"x00\" \"x0F\"\n", argv[0]); printf(" %s \"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F\" \"\\x01\\x01\\x01\" \"x88\" \"xFF\"\n", argv[0]); return 0; } memset(contdata, 0x00, sizeof(contdata)); memset(searched, 0x00, sizeof(searched)); strncpy(contdata, argv[1], sizeof(contdata)); strncpy(searched, argv[2], sizeof(searched)); contsize=hex2bin(contdata, strlen(contdata)); srchsize=hex2bin(searched, strlen(searched)); memset(chfirst, 0x00, sizeof(chfirst)); memset(chlasts, 0x00, sizeof(chlasts)); strncpy(chfirst, argv[3], sizeof(chfirst)); strncpy(chlasts, argv[4], sizeof(chlasts)); hex2bin(chfirst, strlen(chfirst)); hex2bin(chlasts, strlen(chlasts)); printf("%s: contdata=", argv[0]); for (i=0;i<contsize;i++) { printf("%02X ", contdata[i]); } printf("\n"); printf("%s: searched=", argv[0]); for (i=0;i<srchsize;i++) { printf("%02X ", searched[i]); } printf("\n"); memptr=memmem(contdata, contsize, searched, srchsize); if (memptr!=NULL) printf("%s: memptr=memmem(contdata=%p, contsize=%d, searched=%p, srchsize=%d): memptr=%p memptr-contdata=%d\n", argv[0], contdata, contsize, searched, srchsize, memptr, memptr-contdata); else printf("%s: memptr=memmem(contdata=%p, contsize=%d, searched=%p, srchsize=%d): memptr=%p\n", argv[0], contdata, contsize, searched, srchsize, memptr); if (memptr!=NULL) { printf("%s: contdata=", argv[0]); for (i=0;i<contsize;i++) { printf("%02X ", contdata[i]); } printf("\n"); printf("%s: searched=", argv[0]); for (i=0;i<3*(memptr-contdata);i++) printf(" "); for (i=0;i<srchsize;i++) { printf("%02X ", searched[i]); } printf("\n"); } memptr=memrmem(contdata, contsize, searched, srchsize); if (memptr!=NULL) printf("%s: memptr=memrmem(contdata=%p, contsize=%d, searched=%p, srchsize=%d): memptr=%p memptr-contdata=%d\n", argv[0], contdata, contsize, searched, srchsize, memptr, memptr-contdata); else printf("%s: memptr=memrmem(contdata=%p, contsize=%d, searched=%p, srchsize=%d): memptr=%p\n", argv[0], contdata, contsize, searched, srchsize, memptr); if (memptr!=NULL) { printf("%s: contdata=", argv[0]); for (i=0;i<contsize;i++) { printf("%02X ", contdata[i]); } printf("\n"); printf("%s: searched=", argv[0]); for (i=0;i<3*(memptr-contdata);i++) printf(" "); for (i=0;i<srchsize;i++) { printf("%02X ", searched[i]); } printf("\n"); } ifirst=chfirst[0]; memptr=memchr(contdata, ifirst, contsize); if (memptr!=NULL) printf("%s: memptr=memchr (contdata=%p, ifirst=%02X, contsize=%d): memptr=%p memptr-contdata=%d\n", argv[0], contdata, ifirst, contsize, memptr, memptr-contdata); else printf("%s: memptr=memchr (contdata=%p, ifirst=%02X, contsize=%d): memptr=%p\n", argv[0], contdata, ifirst, contsize, memptr); if (memptr!=NULL) { printf("%s: contdata=", argv[0]); for (i=0;i<contsize;i++) { printf("%02X ", contdata[i]); } printf("\n"); printf("%s: searched=", argv[0]); for (i=0;i<3*(memptr-contdata);i++) printf(" "); printf("%02X ", chfirst[0]); printf("\n"); } ilasts=chlasts[0]; memptr=memrchr(contdata, ilasts, contsize); if (memptr!=NULL) printf("%s: memptr=memrchr(contdata=%p, ilasts=%02X, contsize=%d): memptr=%p memptr-contdata=%d\n", argv[0], contdata, ilasts, contsize, memptr, memptr-contdata); else printf("%s: memptr=memrchr(contdata=%p, ilasts=%02X, contsize=%d): memptr=%p\n", argv[0], contdata, ilasts, contsize, memptr); if (memptr!=NULL) { printf("%s: contdata=", argv[0]); for (i=0;i<contsize;i++) { printf("%02X ", contdata[i]); } printf("\n"); printf("%s: searched=", argv[0]); for (i=0;i<3*(memptr-contdata);i++) printf(" "); printf("%02X ", chlasts[0]); printf("\n"); } return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/memmemprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/memmem <contdata> <searched> <chfirst> <chlasts> Examples: /home/local/code/ansiccode/strings/memmem "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x0A\x0B\x0C" "x08" "x08" /home/local/code/ansiccode/strings/memmem "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x00\x01\x02" "x00" "x0F" /home/local/code/ansiccode/strings/memmem "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x01\x01\x01" "x88" "xFF"
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/memmem "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x0A\x0B\x0C" "x08" "x08" /home/local/code/ansiccode/strings/memmem "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x00\x01\x02" "x00" "x0F" /home/local/code/ansiccode/strings/memmem "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F" "\x01\x01\x01" "x88" "xFF"rezultat będzie zależny od podanych argumentów wywołania programu:
/home/local/code/ansiccode/strings/memmem: contdata=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F /home/local/code/ansiccode/strings/memmem: searched=0A 0B 0C /home/local/code/ansiccode/strings/memmem: memptr=memmem(contdata=0xbfe44848, contsize=32, searched=0xbfe44c48, srchsize=3): memptr=0xbfe44852 memptr-contdata=10 /home/local/code/ansiccode/strings/memmem: contdata=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F /home/local/code/ansiccode/strings/memmem: searched= 0A 0B 0C /home/local/code/ansiccode/strings/memmem: memptr=memrmem(contdata=0xbfe44848, contsize=32, searched=0xbfe44c48, srchsize=3): memptr=0xbfe44862 memptr-contdata=26 /home/local/code/ansiccode/strings/memmem: contdata=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F /home/local/code/ansiccode/strings/memmem: searched= 0A 0B 0C /home/local/code/ansiccode/strings/memmem: memptr=memchr (contdata=0xbfe44848, ifirst=78, contsize=32): memptr=(nil) /home/local/code/ansiccode/strings/memmem: memptr=memrchr(contdata=0xbfe44848, ilasts=78, contsize=32): memptr=(nil) /home/local/code/ansiccode/strings/memmem: contdata=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F /home/local/code/ansiccode/strings/memmem: searched=00 01 02 /home/local/code/ansiccode/strings/memmem: memptr=memmem(contdata=0xbff42148, contsize=32, searched=0xbff42548, srchsize=3): memptr=0xbff42148 memptr-contdata=0 /home/local/code/ansiccode/strings/memmem: contdata=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F /home/local/code/ansiccode/strings/memmem: searched=00 01 02 /home/local/code/ansiccode/strings/memmem: memptr=memrmem(contdata=0xbff42148, contsize=32, searched=0xbff42548, srchsize=3): memptr=0xbff42158 memptr-contdata=16 /home/local/code/ansiccode/strings/memmem: contdata=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F /home/local/code/ansiccode/strings/memmem: searched= 00 01 02 /home/local/code/ansiccode/strings/memmem: memptr=memchr (contdata=0xbff42148, ifirst=78, contsize=32): memptr=(nil) /home/local/code/ansiccode/strings/memmem: memptr=memrchr(contdata=0xbff42148, ilasts=78, contsize=32): memptr=(nil) /home/local/code/ansiccode/strings/memmem: contdata=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F /home/local/code/ansiccode/strings/memmem: searched=01 01 01 /home/local/code/ansiccode/strings/memmem: memptr=memmem(contdata=0xbfd65768, contsize=32, searched=0xbfd65b68, srchsize=3): memptr=(nil) /home/local/code/ansiccode/strings/memmem: memptr=memrmem(contdata=0xbfd65768, contsize=32, searched=0xbfd65b68, srchsize=3): memptr=(nil) /home/local/code/ansiccode/strings/memmem: memptr=memchr (contdata=0xbfd65768, ifirst=78, contsize=32): memptr=(nil) /home/local/code/ansiccode/strings/memmem: memptr=memrchr(contdata=0xbfd65768, ilasts=78, contsize=32): memptr=(nil)
#top memmove¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
memmove()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
memmove()
jest następująca:/* Copy N bytes of SRC to DEST, guaranteeing correct behavior for overlapping strings. */ extern void *memmove (void *__dest, __const void *__src, size_t __n) __THROW __nonnull ((1, 2));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja memmove() kopiuje z adresu podanego w argumencie __src do adresu podanego w argumencie __dest ilość bajtów określoną argumentem __n. Przestrzenie adresowe przekazane w argumentach __src i __dest mogą się pokrywać.
Argumenty:
void *__dest - wskaźnik do obszaru pamięci do którego zostaną skopiowane dane z argumentu __src.
const void *__src - wskaźnik do obszaru pamięci z którego zostaną skopiowane dane do argumentu __dest.
size_t __n - liczba bajtów do skopiowania.
Zwracana wartość:
void * - wskaźnik do obszaru pamięci przekazanego w argumencie __dest.
Argumenty:
void *__dest - wskaźnik do obszaru pamięci do którego zostaną skopiowane dane z argumentu __src.
const void *__src - wskaźnik do obszaru pamięci z którego zostaną skopiowane dane do argumentu __dest.
size_t __n - liczba bajtów do skopiowania.
Zwracana wartość:
void * - wskaźnik do obszaru pamięci przekazanego w argumencie __dest.
#top mempcpy¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
mempcpy()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
mempcpy()
jest następująca:/* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __THROW __nonnull ((1, 2));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja mempcpy() działa bardzo podobnie do funkcji memcpy(). Funkcja mempcpy() kopiuje z adresu podanego w argumencie __src do adresu podanego w argumencie __dest ilość bajtów określoną argumentem __n, jednakże w odróżnieniu od funkcji zamiast zwracania adres do przekazany w argumencie __dest zwracany jest wskaźnik do bajtu następującego za ostatnio zapisanym bajtem (__dest + __n).
Argumenty:
void *__restrict __dest - wskaźnik do obszaru pamięci do którego zostaną skopiowane dane z argumentu __src.
const void *__restrict __src - wskaźnik do obszaru pamięci z którego zostaną skopiowane dane do argumentu __dest.
size_t __n - liczba bajtów do skopiowania.
Zwracana wartość:
void * - wskaźnik do bajtu następującego za ostatnio zapisanym bajtem (__dest + __n).
Argumenty:
void *__restrict __dest - wskaźnik do obszaru pamięci do którego zostaną skopiowane dane z argumentu __src.
const void *__restrict __src - wskaźnik do obszaru pamięci z którego zostaną skopiowane dane do argumentu __dest.
size_t __n - liczba bajtów do skopiowania.
Zwracana wartość:
void * - wskaźnik do bajtu następującego za ostatnio zapisanym bajtem (__dest + __n).
#top memrchr¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org (pl.wikibooks.org)
Deklaracja funkcji
memrchr()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
memrchr()
jest następująca:/* Search N bytes of S for the final occurrence of C. */ extern void *memrchr (__const void *__s, int __c, size_t __n) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja memrchr() działa bardzo podobnie do funkcji memchr(). Funkcja memrchr() przeszukuje obszar pamięci wskazywany przez wskaźnik podany w argumencie __s o wielkości określonej argumentem __n w poszukiwaniu bajtu określonego argumentem __c i zwraca adres do znalezionego argumentu, jednakże w odróżnieniu od funkcji memchr() podany obszar przeszukiwany jest wstecz (przeszukiwanie rozpoczyna się od adresu __s + __n, przeszukiwana jest ilość bajtów __n do adresu __s). W przypadku gdy poszukiwany bajt nie zostanie znaleziony zwracany jest NULL.
Argumenty:
const void *__s - wskaźnik do obszaru pamięci w którym poszukiwany jest znak określony argumentem __c.
int __c - poszukiwany znak w adresie pamięci określonym argumentem __s.
size_t __n - argument ograniczający obszar pamięci który jest przeglądany w poszukiwaniu znaku.
Zwracana wartość:
void * - adres pamięci wskazujący na znaleziony znak lub w przypadku gdy znak nie został znaleziony zwracany jest NULL.
Argumenty:
const void *__s - wskaźnik do obszaru pamięci w którym poszukiwany jest znak określony argumentem __c.
int __c - poszukiwany znak w adresie pamięci określonym argumentem __s.
size_t __n - argument ograniczający obszar pamięci który jest przeglądany w poszukiwaniu znaku.
Zwracana wartość:
void * - adres pamięci wskazujący na znaleziony znak lub w przypadku gdy znak nie został znaleziony zwracany jest NULL.
#top memset¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
memset()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
memset()
jest następująca:/* Set N bytes of S to C. */ extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja memset() wypełnia adres pamięci wskazywany przez wskaźnik podany w argumencie __s o wielkości określonej argumentem __n bajtem o wartości podanej w argumencie __c i wskaźnik do obszaru pamięci przekazanego w argumencie wywołania __s. Funkcja memset() jest często używana do tzw. zerowania (czyszczenia obszaru pamięci) wskazywanego wskaźnikiem, przy czym jako obszary pamięci podawane są różnego rodzaju struktury kontrolne jak również łańcuchy znaków (wskaźniki do łańcuchów znaków), dzięki czemu ma potrzeby inicjowania (zerowania) elementów składowych struktur każdego pojedyńczo.
Przykładowe wywołanie z inicjalizacją (zerowaniem) bufora znaków:
Argumenty:
void *__s - wskaźnik do obszaru pamięci, który zostanie wypełniony bajtem przekazanymi w argumencie wywołania __c.
int __c - bajt, którym zostanie wypełniony obszar pamięci przekazany w argumencie wywołania __s.
size_t __n - ilość bajtów w obszarze pamięci wskazywanym wskaźnikiem przekazanym w argumencie wywołania __s, która zostanie wypełniona bajtem przekazanym w argumencie wywołania __c.
Zwracana wartość:
void * - wskaźnik do obszaru pamięci przekazanego w argumencie wywołania __s.
Przykładowe wywołanie z inicjalizacją (zerowaniem) bufora znaków:
char buffdata[8192]; memset(buffdata, 0x00, sizeof(buffdata));Przykładowe wywołanie z inicjalizacją (zerowaniem) struktury:
struct sockaddr_in inet4addr; memset(&inet4addr, 0x00, sizeof(struct sockaddr_in));
Argumenty:
void *__s - wskaźnik do obszaru pamięci, który zostanie wypełniony bajtem przekazanymi w argumencie wywołania __c.
int __c - bajt, którym zostanie wypełniony obszar pamięci przekazany w argumencie wywołania __s.
size_t __n - ilość bajtów w obszarze pamięci wskazywanym wskaźnikiem przekazanym w argumencie wywołania __s, która zostanie wypełniona bajtem przekazanym w argumencie wywołania __c.
Zwracana wartość:
void * - wskaźnik do obszaru pamięci przekazanego w argumencie wywołania __s.
#top printf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
printf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
printf()
jest następująca:/* Write formatted output to stdout. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int printf (__const char *__restrict __format, ...);
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja printf() analogicznie jak inne funkcje z tej rodziny funkcji jako wynik produkuje łańcuch znaków skorelowany z formatem przekazanym w argumencie __format oraz z skorelowanymi z tym formatem argumentami wywołania. Funkcja printf() zapisuje wynik działania do standadowego wyjścia (stdout standard output stream).
Argumenty:
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany łańcuch znaków.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int - ilość znaków wyprodukowanego łańcucha znaków według formatu przekazanego w argumencie __format.
Argumenty:
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany łańcuch znaków.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int - ilość znaków wyprodukowanego łańcucha znaków według formatu przekazanego w argumencie __format.
Example:
zawartość pliku
printf.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset memcmp memchr str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <errno.h> /* for errno constant, error constants, */ int main(int argc, char **argv) { if (argc<1) { printf("Usage: %s <arg>\n", argv[0]); return 1; } printf("%s: printf formatted string into stdout, main(int argc, char **argv): argc=%d argv[0]=%s)\n", argv[0], argc, argv[0]); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/printfprogram wyświetli stosowne informacje o sposobie działania:
/home/local/code/ansiccode/strings/printf: printf formatted string into stdout, main(int argc, char **argv): argc=1 argv[0]=/home/local/code/ansiccode/strings/printf)
#top putchar¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
putchar()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
putchar()
jest następująca:/* Write a character to stdout. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int putchar (int __c);
Powiązane:
getc(), getchar(), gets(), putc(), putchar(), puts(),
Opis:
Funkcja putchar() zapisuje znak podany w argumencie wywołania __c w standardowym wyjściu (strumieniu stdout, standard output stream). Wywołanie funkcji putchar() jest równoważne do wywołania putc(__c,stdout).
Argumenty:
int __c -
Zwracana wartość:
int -
Argumenty:
int __c -
Zwracana wartość:
int -
Example:
zawartość pliku
putchar.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset memcmp memchr str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <errno.h> /* for errno constant, error constants, */ int main(int argc, char **argv) { int result; int onechar; if (argc<1) { printf("Usage: %s\n", argv[0]); return 1; } onechar='A'; printf("%s: putchar(onechar): ", argv[0]); fflush(stdout); result=putchar(onechar); putc('\n', stdout); printf("%s: putchar(onechar): result=%d\n", argv[0], result); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/putcharprogram wyświetli stosowne informacje o sposobie działania:
/home/local/code/ansiccode/strings/putchar: putchar(onechar): A /home/local/code/ansiccode/strings/putchar: putchar(onechar): result=65
#top puts¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
puts()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
puts()
jest następująca:/* Write a string, followed by a newline, to stdout. This function is a possible cancellation points and therefore not marked with __THROW. */ extern int puts (__const char *__s);
Powiązane:
getc(), getchar(), gets(), putc(), putchar(), puts(),
Opis:
Funkcja puts() zapisuje łańcuch znaków (wskaźnik do łańcucha znaków) podany w argumencie wywołania __s w standardowym wyjściu (strumieniu stdout, standard output stream) dołączając znak nowej linii (po wyświetleniu łańcucha znaków wyświetlany jest dodatkowo znak nowej linii).
Argumenty:
const char *__s -
Zwracana wartość:
int -
Argumenty:
const char *__s -
Zwracana wartość:
int -
Example:
zawartość pliku
puts.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset memcmp memchr str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <errno.h> /* for errno constant, error constants, */ int main(int argc, char **argv) { if (argc<1) { printf("Usage: %s\n", argv[0]); return 1; } puts("puts:line1"); puts("puts:line2"); puts("puts:line3"); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/putsprogram wyświetli stosowne informacje o sposobie działania:
puts:line1 puts:line2 puts:line3
#top rawmemchr¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
rawmemchr()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
rawmemchr()
jest następująca:/* Search in S for C. This is similar to `memchr' but there is no length limit. */ extern void *rawmemchr (__const void *__s, int __c) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja rawmemchr()
Argumenty:
const void *__s -
int __c -
Zwracana wartość:
void * -
Argumenty:
const void *__s -
int __c -
Zwracana wartość:
void * -
Example:
zawartość pliku
rawmemchr.c
SELECT ALL
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
program wyświetli informacje o sposobie uruchamiania programu:
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
rezultat będzie zależny od podanych argumentów wywołania programu:
#top rindex¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
rindex()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
rindex()
jest następująca:/* Find the last occurrence of C in S (same as strrchr). *: extern char *rindex (__const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja rindex() podobnie jak funkcja index() przeszukuje łańcuch znaków (wskaźnik do łańcucha znaków) podany w argumencie __s w poszukiwaniu znaku przekazanego w argumencie __c i zwraca wskaźnik do łańcucha znaków do miejsca rozpoczynającego się od znalezionego znaku, jednakże w odróżnieniu od funkcji index() podany obszar przeszukiwany jest wstecz (przeszukiwanie rozpoczyna się od adresu __s + strlen(__s), przeszukiwanie wykonywane jest do adresu __s). W przypadku gdy poszukiwany znak nie zostanie znaleziony zwracany jest NULL.
Argumenty:
const char *__s -
int __c -
Zwracana wartość:
char * -
Argumenty:
const char *__s -
int __c -
Zwracana wartość:
char * -
#top scanf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
scanf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
scanf()
jest następująca:/* Read formatted input from stdin. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int scanf (__const char *__restrict __format, ...) __wur;
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja scanf() podobnie jak inne funkcje z tej rodziny analizuje łańcuch znaków zgodnie z formatem przekazanym w argumencie __format i wynik umieszcza w skorelowanych argumentach wywołania. Funkcja scanf() odczytuje łańcuch znaków ze standarowego wejścia (stdin standard input stream).
Argumenty:
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie przeanalizowany wejściowy łańcuch znaków.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie przeanalizowany wejściowy łańcuch znaków.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Example:
zawartość pliku
scanf.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset memcmp memchr str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <errno.h> /* for errno constant, error constants, */ int main(int argc, char **argv) { int result; int argint; double argdouble; char argchar; char argstr[1024]; if (argc<1) { printf("Usage: %s <arg>\n", argv[0]); return 1; } printf("%s: scanf(%%d, &argint): ", argv[0]); fflush(stdout); result=scanf("%d", &argint); printf("%s: scanf(%%d, &argint): argint=%d result=%d\n", argv[0], argint, result); printf("%s: scanf(%%f, &argdouble): ", argv[0]); fflush(stdout); result=scanf("%lf", &argdouble); printf("%s: scanf(%%f, &argdouble): argdouble=%f result=%d\n", argv[0], argdouble, result); printf("%s: scanf(%%c, &argchar): ", argv[0]); fflush(stdout); result=scanf("%c", &argchar); printf("%s: scanf(%%c, &argchar): argchar=%c result=%d\n", argv[0], argchar, result); printf("%s: scanf(%%c, &argchar): ", argv[0]); fflush(stdout); result=scanf("%c", &argchar); printf("%s: scanf(%%c, &argchar): argchar=%c result=%d\n", argv[0], argchar, result); printf("%s: scanf(%%s, &argstr): ", argv[0]); fflush(stdout); result=scanf("%s", argstr); printf("%s: scanf(%%s, &argstr): argstr=%s result=%d\n", argv[0], argstr, result); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/snprintfw oczekiwaniu programu na stosowne argumenty należy wpisać:
1 2.5 123asdrezultat będzie zależny od podanych danych po wywołaniu programu:
/home/local/code/ansiccode/strings/scanf: scanf(%d, &argint): 1 /home/local/code/ansiccode/strings/scanf: scanf(%d, &argint): argint=1 result=1 /home/local/code/ansiccode/strings/scanf: scanf(%f, &argdouble): 2.5 /home/local/code/ansiccode/strings/scanf: scanf(%f, &argdouble): argdouble=2.500000 result=1 /home/local/code/ansiccode/strings/scanf: scanf(%c, &argchar): /home/local/code/ansiccode/strings/scanf: scanf(%c, &argchar): argchar= result=1 /home/local/code/ansiccode/strings/scanf: scanf(%c, &argchar): 123asd /home/local/code/ansiccode/strings/scanf: scanf(%c, &argchar): argchar=1 result=1 /home/local/code/ansiccode/strings/scanf: scanf(%s, &argstr): /home/local/code/ansiccode/strings/scanf: scanf(%s, &argstr): argstr=23asd result=1
#top snprintf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
snprintf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
snprintf()
jest następująca:* Maximum chars of output to write in MAXLEN. */ extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __THROW __attribute__ ((__format__ (__printf__, 3, 4)));
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja snprintf() analogicznie jak inne funkcje z tej rodziny funkcji jako wynik produkuje łańcuch znaków skorelowany z formatem przekazanym w argumencie __format oraz skorelowanymi z tym formatem argumentami wywołania. Funkcja snprintf() zapisuje wynik działania do bufora przekazanego jako argument __s, ale nie więcej niż podaną w argumencie wywołania __maxlen ilość znaków, dzięki czemu stosowanie tej funckcji jest bezpieczne.
Argumenty:
char *__restrict __s - wzkaźnik do bufora w którym zostanie zapisany wyprodukowany łańchuch znaków zgodnie z przekazanym formatem w argumencie __format.
size_t __maxlen - maksymalna ilość która powinna być zapisana do bufora.
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
char *__restrict __s - wzkaźnik do bufora w którym zostanie zapisany wyprodukowany łańchuch znaków zgodnie z przekazanym formatem w argumencie __format.
size_t __maxlen - maksymalna ilość która powinna być zapisana do bufora.
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Example:
zawartość pliku
snprintf.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset memcmp memchr str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <errno.h> /* for errno constant, error constants, */ int main(int argc, char **argv) { char buffer[1024]; if (argc<1) { printf("Usage: %s <arg>\n", argv[0]); return 1; } snprintf(buffer, sizeof(buffer), "%s: printf formatted string into buffer, main(int argc, char **argv): argc=%d argv[0]=%s)", argv[0], argc, argv[0]); printf("%s: buffer=|%s|\n", argv[0], buffer); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/snprintfprogram wyświetli stosowne informacje o sposobie działania:
/home/local/code/ansiccode/strings/snprintf: buffer=|/home/local/code/ansiccode/strings/snprintf: printf formatted string into buffer, main(int argc, char **argv): argc=1 argv[0]=/home/local/code/ansiccode/strings/snprintf)|
#top sprintf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
sprintf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
sprintf()
jest następująca:/* Write formatted output to S. */ extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) __THROW;
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja sprintf() analogicznie jak inne funkcje z tej rodziny funkcji jako wynik produkuje zestaw znaków skorelowany z formatem przekazanym w argumencie __format oraz z skorelowanymi z tym formatem argumentami wywołania. Funkcja sprintf() podobnie jak funkcja snprintf() zapisuje wynik działania do bufora przekazanego jako argument wywołania __s, jednakże nie posiada żadnego ograniczenia dotyczącego ilości znaków, które są zapisywane do bufora. Funkcja sprintf() toteż uznawana jest za mniej bezpieczną, zalecane jest stosowane bezpieczniejszego zamiennika tej funkcji snprintf().
Argumenty:
char *__restrict __s - wzkaźnik do bufora w którym zostanie zapisany wyprodukowany łańchuch znaków zgodnie z przekazanym formatem w argumencie __format.
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
char *__restrict __s - wzkaźnik do bufora w którym zostanie zapisany wyprodukowany łańchuch znaków zgodnie z przekazanym formatem w argumencie __format.
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
#top sscanf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
sscanf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
sscanf()
jest następująca:/* Read formatted input from S. */ extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __THROW;
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja sscanf() podobnie jak inne funkcje z tej rodizny analizuje łańcuch znaków zgodnie z formatem przekazanym w argumencie __format i wynik umieszcza w skorelowanuch argumentach wywołania. Funkcja sscanf() odczytuje łańcuch znaków z bufora przekazanego jako argument wywołania __s.
Argumenty:
const char *__restrict __s - wskaźnik do bufora, który zostanie przeanalizowany według formatu podanego w argumencie __format.
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie przeanalizowany zestaw znaków przekazany w argumencie __s.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
const char *__restrict __s - wskaźnik do bufora, który zostanie przeanalizowany według formatu podanego w argumencie __format.
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie przeanalizowany zestaw znaków przekazany w argumencie __s.
... - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Example:
zawartość pliku
sscanf.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset memcmp memchr str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <errno.h> /* for errno constant, error constants, */ int main(int argc, char **argv) { int result; char line[1024]; int argint; double argdouble; char argchar; char argstr[1024]; if (argc<1) { printf("Usage: %s <arg>\n", argv[0]); return 1; } printf("%s: scanf(%%d, &argint): ", argv[0]); fflush(stdout); if (gets(line)) { result=sscanf(line, "%d", &argint); printf("%s: result=scanf(%%d, &argint): result=%d argint=%d\n", argv[0], result, argint); } printf("%s: scanf(%%f, &argdouble): ", argv[0]); fflush(stdout); if (gets(line)) { result=sscanf(line, "%lf", &argdouble); printf("%s: scanf(%%f, &argdouble): argdouble=%f result=%d\n", argv[0], argdouble, result); } printf("%s: scanf(%%c, &argchar): ", argv[0]); fflush(stdout); if (gets(line)) { result=sscanf(line, "%c", &argchar); printf("%s: scanf(%%c, &argchar): argchar=%c result=%d\n", argv[0], argchar, result); } printf("%s: scanf(%%c, &argchar): ", argv[0]); fflush(stdout); if (gets(line)) { result=sscanf(line, "%c", &argchar); printf("%s: scanf(%%c, &argchar): argchar=%c result=%d\n", argv[0], argchar, result); } printf("%s: scanf(%%s, &argstr): ", argv[0]); fflush(stdout); if (gets(line)) { result=sscanf(line, "%s", argstr); printf("%s: scanf(%%s, &argstr): argstr=%s result=%d\n", argv[0], argstr, result); } return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/sscanfw oczekiwaniu programu na stosowne argumenty należy wpisać:
1 2.5 a @ 123asdrezultat będzie zależny od podanych danych po wywołaniu programu:
/home/local/code/ansiccode/strings/sscanf: scanf(%d, &argint): 1 /home/local/code/ansiccode/strings/sscanf: result=scanf(%d, &argint): result=1 argint=1 /home/local/code/ansiccode/strings/sscanf: scanf(%f, &argdouble): 2.5 /home/local/code/ansiccode/strings/sscanf: scanf(%f, &argdouble): argdouble=2.500000 result=1 /home/local/code/ansiccode/strings/sscanf: scanf(%c, &argchar): a /home/local/code/ansiccode/strings/sscanf: scanf(%c, &argchar): argchar=a result=1 /home/local/code/ansiccode/strings/sscanf: scanf(%c, &argchar): @ /home/local/code/ansiccode/strings/sscanf: scanf(%c, &argchar): argchar=@ result=1 /home/local/code/ansiccode/strings/sscanf: scanf(%s, &argstr): 123asd /home/local/code/ansiccode/strings/sscanf: scanf(%s, &argstr): argstr=123asd result=1
#top strcasestr¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strcasestr()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strcasestr()
jest następująca:/* Similar to `strstr' but this function ignores the case of both strings. *: extern char *strcasestr (__const char *__haystack, __const char *__needle) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja strcasestr() podobnie jak funkcja strstr() znajduje pierwsze występienie łańcucha znaków przekazengo w argumencie __needle przeszukując łańcuch znaków podany w argumencie __haystack, jednakże w odróżnieniu do funkcji strstr() wielkość znaków zarówno poszukiwanego łańcucha znaków jak również wielkość znaków w poszukiwanym łańcuchu znaków jest ignorowana. wielkość znaków zarówno poszukiwanego łańcucha znaków jak również wielkość znaków w poszukiwanym łańcuchu znaków jest ignorowana. wielkość znaków zarówno poszukiwanego łańcucha znaków jak również wielkość znaków w poszukiwanym łańcuchu znaków jest ignorowana. wielkość znaków zarówno poszukiwanego łańcucha znaków jak również wielkość znaków w poszukiwanym łańcuchu znaków jest ignorowana.
Argumenty:
const char *__haystack -
const char *__needle -
Zwracana wartość:
char * -
Argumenty:
const char *__haystack -
const char *__needle -
Zwracana wartość:
char * -
#top strcat¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strcat()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strcat()
jest następująca:/* Append SRC onto DEST. */ extern char *strcat (char *__restrict __dest, __const char *__restrict __src) __THROW __nonnull ((1, 2));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja strcat() dołącza ("dokleja") do łańcucha znaków (wskaźnika do łańcucha znaków) przekazanego w argumencie __dest łańcuch znaków (wskaźnik do łańcucha znaków) przekazany w argumencie __src. Funkcja strcat() nie posiada żadnego ograniczenia dotyczącego ilości znaków, które są zapisywane do wskaźnika przekazanego w argumencie __dest, toteż uznawana jest za mniej bezpieczną, zalecane jest stosowane bezpieczniejszego zamiennika tej funkcji strncat().
Argumenty:
char *__restrict __dest - łańcuch znaków (wskaźnik do łańcucha znaków) do którego dołączony zostanie łańcuch znaków przekazany w argumencie __src.
const char *__restrict __src - łańcuch znaków (wskaźnik do łańcucha znaków) który dołączany ("doklejany") do łańcucha znaków przekazanego w argumencie __dest.
Zwracana wartość:
char * -
Argumenty:
char *__restrict __dest - łańcuch znaków (wskaźnik do łańcucha znaków) do którego dołączony zostanie łańcuch znaków przekazany w argumencie __src.
const char *__restrict __src - łańcuch znaków (wskaźnik do łańcucha znaków) który dołączany ("doklejany") do łańcucha znaków przekazanego w argumencie __dest.
Zwracana wartość:
char * -
#top strchr¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strchr()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strchr()
jest następująca:/* Find the first occurrence of C in S. */ extern char *strchr (__const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja strchr() przeszukuje łańcuch znaków (wskaźnik do łańcucha znaków) podany w argumencie __s w poszukiwaniu znaku przekazanego w argumencie __c i zwraca wskaźnik do łańcucha znaków do miejsca rozpoczynającego się od znalezionego znaku. W przypadku gdy poszukiwany znak nie zostanie znaleziony zwracany jest NULL.
Argumenty:
const char *__s - łańcuch znaków (wskaźnik do łańcucha znaków) w którym poszukiwany jest znak przekazany w argumencie __c.
int __c - poszukiwany znak w łańcuchu znaków przekazanym w argumencie __s.
Zwracana wartość:
char * - wskaźnik do łańcucha znaków do miejsca rozpoczynającego się od znalezionego znaku lub w przypadku gdy znak nie został znaleziony zwracany jest NULL.
Argumenty:
const char *__s - łańcuch znaków (wskaźnik do łańcucha znaków) w którym poszukiwany jest znak przekazany w argumencie __c.
int __c - poszukiwany znak w łańcuchu znaków przekazanym w argumencie __s.
Zwracana wartość:
char * - wskaźnik do łańcucha znaków do miejsca rozpoczynającego się od znalezionego znaku lub w przypadku gdy znak nie został znaleziony zwracany jest NULL.
#top strcmp¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strcmp()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strcmp()
jest następująca:/* Compare S1 and S2. */ extern int strcmp (__const char *__s1, __const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
memcmp(), strcoll(), strncasecmp(), strncmp(), strverscmp(),
Opis:
Funkcja strcmp() porównuje łańcuchy znaków przekazane w argumentach wywołania __s1 oraz __s2 i zwraca wartość całkowitoliczbową: mniejszą od zera jeśli ciąg znaków przekazany w argumencie __s1 jest mniejszy (mniejszy, ale nie w sensie długości ciągu znaków) niż ciąg znaków przekazany w argumencie __s2, równą zero jeśli ciąg znaków przekazany w argumencie __s1 jest równy ciągowi znaków przekazanemu w argumencie __s2, lub większą od zera jeśli ciąg znaków przekazany w argumencie __s1 jest większy (większy, ale nie w sensie długości ciągu znaków) niż ciąg znaków przekazany w argumencie __s2. Funkcja strcmp() nie posiada żadnego ograniczenia dotyczącego ilości porównywanych znaków przekazanych w argumentach __s1 i __s2 toteż uznawana jest za mniej bezpieczną, zalecane jest stosowane bezpieczniejszego zamiennika tej funkcji strncmp().
Argumenty:
const char *__s1 - łańcuch znaków (wskaźnik do łańcucha znaków) który zostanie porównany z łańcuchem znaków przekazanym w argumencie __s2.
const char *__s2 - łańcuch znaków (wskaźnik do łańcucha znaków) który zostanie porównany z łańcuchem znaków przekazanym w argumencie __s1.
Zwracana wartość:
int - wynik porówniania: wartość większa od zera, równa zero, mniejsza od zera.
Argumenty:
const char *__s1 - łańcuch znaków (wskaźnik do łańcucha znaków) który zostanie porównany z łańcuchem znaków przekazanym w argumencie __s2.
const char *__s2 - łańcuch znaków (wskaźnik do łańcucha znaków) który zostanie porównany z łańcuchem znaków przekazanym w argumencie __s1.
Zwracana wartość:
int - wynik porówniania: wartość większa od zera, równa zero, mniejsza od zera.
#top strcoll¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strcoll()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strcoll()
jest następująca:/* Compare the collated forms of S1 and S2. */ extern int strcoll (__const char *__s1, __const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
memcmp(), strcoll(), strncasecmp(), strncmp(), strverscmp(),
Opis:
Funkcja strcoll() podobnie jak funkcje z grupy str*cmp() porównuje łańcuchy znaków przekazane w argumentach wywołania __s1 oraz __s2 i zwraca wartość całkowitoliczbową: mniejszą od zera jeśli ciąg znaków przekazany w argumencie __s1 jest mniejszy (mniejszy, ale nie w sensie długości ciągu znaków) niż ciąg znaków przekazany w argumencie __s2, równą zero jeśli ciąg znaków przekazany w argumencie __s1 jest równy ciągowi znaków przekazanemu w argumencie __s2, lub większą od zera jeśli ciąg znaków przekazany w argumencie __s1 jest większy (większy, ale nie w sensie długości ciągu znaków) niż ciąg znaków przekazany w argumencie __s2. Funkcja strcoll() w odróźnieniu od funkcji z grupy str*cmp porównuje łańcuchy znaków z uwzględnieniem ustawień locale w danym środowisku (przy porównywaniu uzględniane jest ustawienie zmiennej środowiskowej
Argumenty:
const char *__s1 -
const char *__s2 -
Zwracana wartość:
int -
LC_COLLATE
).Argumenty:
const char *__s1 -
const char *__s2 -
Zwracana wartość:
int -
Example:
zawartość pliku
strcoll.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <locale.h> int main(int argc, char **argv) { char *self; int result; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" LC_COLLATE=pl_PL.UTF-8 %s texta textd\n", argv[0]); printf(" LC_COLLATE=pl_PL.UTF-8 %s textą textd\n", argv[0]); printf(" LC_COLLATE=pl_PL.UTF-8 %s textb textd\n", argv[0]); printf(" LC_COLLATE=pl_PL.UTF-8 %s textc textd\n", argv[0]); printf(" LC_COLLATE=pl_PL.UTF-8 %s textć textd\n", argv[0]); printf(" LC_COLLATE=pl_PL.UTF-8 %s textd textd\n", argv[0]); printf(" LC_COLLATE=pl_PL.UTF-8 %s texte textd\n", argv[0]); printf(" LC_COLLATE=pl_PL.UTF-8 %s textę textd\n", argv[0]); printf(" LC_COLLATE=pl_PL.UTF-8 %s textf textd\n", argv[0]); return 0; } printf("setlocale(LC_COLLATE,\"\")=%s\n", setlocale(LC_COLLATE,"")); printf("%s: result=strncmp(argv[1]=|%s|, argv[2]=|%s|):\n", self, argv[1], argv[2]); result=strcoll(argv[1], argv[2]); printf("%s: result=strncmp(argv[1]=|%s|, argv[2]=|%s|): result=%d\n", self, argv[1], argv[2], result); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strcollprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strcoll <some-text> Examples: LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll texta textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textą textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textb textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textc textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textć textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textd textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll texte textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textę textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textf textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll texth textd
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll texta textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textą textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textb textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textc textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textć textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textd textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll texte textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textę textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll textf textd LC_COLLATE=pl_PL.UTF-8 /home/local/code/ansiccode/strings/strcoll texth textdrezultat będzie zależny od podanych argumentów wywołania programu:
setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|texta|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texta|, argv[2]=|textd|): result=-5 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|textą|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textą|, argv[2]=|textd|): result=-4 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|textb|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textb|, argv[2]=|textd|): result=-3 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|textc|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textc|, argv[2]=|textd|): result=-2 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|textć|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textć|, argv[2]=|textd|): result=-1 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|textd|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textd|, argv[2]=|textd|): result=0 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|texte|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texte|, argv[2]=|textd|): result=1 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|textę|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textę|, argv[2]=|textd|): result=2 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|textf|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textf|, argv[2]=|textd|): result=3 setlocale(LC_COLLATE,"")=pl_PL.UTF-8 strcoll: result=strncmp(argv[1]=|texth|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texth|, argv[2]=|textd|): result=5
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll texta textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll textą textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll textb textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll textc textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll textć textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll textd textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll texte textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll textę textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll textf textd LC_COLLATE=en_US.UTF-8 /home/local/code/ansiccode/strings/strcoll texth textdrezultat będzie zależny od podanych argumentów wywołania programu:
setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|texta|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texta|, argv[2]=|textd|): result=-3 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|textą|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textą|, argv[2]=|textd|): result=-3 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|textb|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textb|, argv[2]=|textd|): result=-2 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|textc|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textc|, argv[2]=|textd|): result=-1 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|textć|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textć|, argv[2]=|textd|): result=-1 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|textd|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textd|, argv[2]=|textd|): result=0 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|texte|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texte|, argv[2]=|textd|): result=1 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|textę|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textę|, argv[2]=|textd|): result=1 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|textf|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textf|, argv[2]=|textd|): result=2 setlocale(LC_COLLATE,"")=en_US.UTF-8 strcoll: result=strncmp(argv[1]=|texth|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texth|, argv[2]=|textd|): result=4
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll texta textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll textą textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll textb textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll textc textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll textć textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll textd textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll texte textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll textę textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll textf textd LC_COLLATE=C /home/local/code/ansiccode/strings/strcoll texth textdrezultat będzie zależny od podanych argumentów wywołania programu:
setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|texta|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texta|, argv[2]=|textd|): result=-1 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|textą|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textą|, argv[2]=|textd|): result=1 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|textb|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textb|, argv[2]=|textd|): result=-1 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|textc|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textc|, argv[2]=|textd|): result=-1 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|textć|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textć|, argv[2]=|textd|): result=1 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|textd|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textd|, argv[2]=|textd|): result=0 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|texte|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texte|, argv[2]=|textd|): result=1 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|textę|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textę|, argv[2]=|textd|): result=1 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|textf|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|textf|, argv[2]=|textd|): result=1 setlocale(LC_COLLATE,"")=C strcoll: result=strncmp(argv[1]=|texth|, argv[2]=|textd|): strcoll: result=strncmp(argv[1]=|texth|, argv[2]=|textd|): result=1
Jak widać rezultat działania funkcji zależny jest od wartości ustawionej w zmiennej środowiskowej
LC_COLLATE
.#top strcpy¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strcpy()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strcpy()
jest następująca:/* Copy SRC to DEST. */ extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) __THROW __nonnull ((1, 2));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja strcpy() kopiuje łańcuch znaków (wskaźnik do łańcucha znaków) przekazany w argumencie __src do łańcucha znaków (wskaźnika do łańcucha znaków) przekazanego w argumencie __dest. Funkcja strcpy() nie posiada żadnego ograniczenia dotyczącego ilości znaków, które są zapisywane są do wskaźnika przekazanego w argumencie __dest, toteż uznawana jest za mniej bezpieczną, zalecane jest stosowanie bezpieczniejszego zamiennika tej funkcji strncpy().
Argumenty:
char *__restrict __dest -
const char *__restrict __src -
Zwracana wartość:
char * -
Argumenty:
char *__restrict __dest -
const char *__restrict __src -
Zwracana wartość:
char * -
#top strcspn¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strcspn()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strcspn()
jest następująca:/* Return the length of the initial segment of S which consists entirely of characters not in REJECT. */ extern size_t strcspn (__const char *__s, __const char *__reject) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
strcspn(), strpbrk(), strspn(),
Opis:
Funkcja strcspn() zwraca ilość znaków w argumencie __s, które nie znajadują się w argumencie __reject począwszy od początku łańcucha znaków.
Argumenty:
const char *__s - łańcuch znaków (wskaźnik do łańcucha znaków) w którym poszukiwane są znaki przekazane w argumencie __reject.
const char *__reject - łańcuch znaków (wskaźnik do łańcucha znaków) które są poszukiwane w argumencie __s.
Zwracana wartość:
size_t - ilość znaków, które nie znajdują się w argumencie __s
Argumenty:
const char *__s - łańcuch znaków (wskaźnik do łańcucha znaków) w którym poszukiwane są znaki przekazane w argumencie __reject.
const char *__reject - łańcuch znaków (wskaźnik do łańcucha znaków) które są poszukiwane w argumencie __s.
Zwracana wartość:
size_t - ilość znaków, które nie znajdują się w argumencie __s
#top strdup¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strdup()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strdup()
jest następująca:#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED /* Duplicate S, returning an identical malloc'd string. */ extern char *strdup (__const char *__s) __THROW __attribute_malloc__ __nonnull ((1)); #endif
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja strdup() zwraca łańcuch znaków (wskaźnik do łańcucha znaków, wskaźnik do obszaru pamięci zaalokowanej przez funkcję malloc()) zawierający kopię łańcucha znaków przekazanego w argumencie __s, który po zakończeniu wykonywania operacji powinien być zwolniony z użyciem funkcji free(). W przypadku braku pamięci funkcja strdup() zwraca NULL. Funkcja strdup() nie posiada żadnego ograniczenia dotyczącego ilości znaków, które są kopiowane ze wskaźnika przekazanego w argumencie __s, toteż uznawana jest za mniej bezpieczną, zalecane jest stosowanie bezpieczniejszego zamiennika tej funkcji strndup().
Argumenty:
const char *__s - łańcuch znaków (wskaźnik do łańcucha znaków), którego kopia zostanie zwrócona.
Zwracana wartość:
char * - wskaźnik do obszaru pamięci w którym zajduje się kopia łańcucha znaków przekazanego w argumencie __s lub NULL w przypadku braku pamięci.
Argumenty:
const char *__s - łańcuch znaków (wskaźnik do łańcucha znaków), którego kopia zostanie zwrócona.
Zwracana wartość:
char * - wskaźnik do obszaru pamięci w którym zajduje się kopia łańcucha znaków przekazanego w argumencie __s lub NULL w przypadku braku pamięci.
#top strerror¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strerror()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strerror()
jest następująca:/* Return a string describing the meaning of the `errno' code in ERRNUM. */ extern char *strerror (int __errnum) __THROW;
Powiązane:
errno, perror(), strerror(),
Opis:
Funkcja strerror() zwraca łańcuch znaków (wskaźnik do łańcucha znaków) zawierający tekstowy opis kodu błędu przekazanego w argumencie __errnum.
Argumenty:
int __errnum - kod błędu dla którego zostanie zwrócony łańcuch znaków zawierający tekstowy opis błędu.
Zwracana wartość:
char * - łańcuch znaków zawierający tekstowy opis błędu dla kodu przekazanego w argumencie __errnum.
Argumenty:
int __errnum - kod błędu dla którego zostanie zwrócony łańcuch znaków zawierający tekstowy opis błędu.
Zwracana wartość:
char * - łańcuch znaków zawierający tekstowy opis błędu dla kodu przekazanego w argumencie __errnum.
Example:
zawartość pliku
strerror.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <stdlib.h> /* for RAND_MAX, EXIT_FAILURE, EXIT_SUCCESS, MB_CUR_MAX, atoi(), atol(), atoll(), atof(), strtod(), strtof(), strtold(), strtol(), strtoul(), strtoq(), strtouq(), strtoll(), strtoull(), */ /* for sys/types.h, malloc.h replaced by stdlib.h, random(), srandom(), rand(), srand(), abort(), atexit(), on_exit(), exit(), getenv(), */ /* for putenv(), setenv(), clearenv(), mktemp(), mkstemp(), mkdtemp(), system(), realpath(), abs(), labs(), llabs(), getloadavg(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; #if defined(HAVE_STRERROR) int ierr; char *serr; #endif self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s\n", argv[0]); printf("Examples:\n"); printf(" %s 0\n", argv[0]); printf(" %s 1\n", argv[0]); printf(" %s 2\n", argv[0]); printf(" %s 3\n", argv[0]); printf(" %s 5\n", argv[0]); return 0; } #if defined(HAVE_STRERROR) ierr=atoi(argv[1]); serr=strerror(ierr); printf("serr=strerror(%d): SystemCall result: ierr:serr=%d:%s\n", ierr, ierr, serr); #endif return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strerrorprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strerror Examples: /home/local/code/ansiccode/strings/strerror 0 /home/local/code/ansiccode/strings/strerror 1 /home/local/code/ansiccode/strings/strerror 2 /home/local/code/ansiccode/strings/strerror 3 /home/local/code/ansiccode/strings/strerror 5
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strerror 0 /home/local/code/ansiccode/strings/strerror 1 /home/local/code/ansiccode/strings/strerror 2 /home/local/code/ansiccode/strings/strerror 3 /home/local/code/ansiccode/strings/strerror 5rezultat będzie zależny od podanych argumentów wywołania programu:
serr=strerror(0): SystemCall result: ierr:serr=0:Success serr=strerror(1): SystemCall result: ierr:serr=1:Operation not permitted serr=strerror(2): SystemCall result: ierr:serr=2:No such file or directory serr=strerror(3): SystemCall result: ierr:serr=3:No such process serr=strerror(5): SystemCall result: ierr:serr=5:Input/output error
#top strfmon¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strfmon()
znajduje się w pliku nagłówkowym monetary.h
.Deklaracja funkcji
strfmon()
jest następująca:/* Formatting a monetary value according to the current locale. */ extern ssize_t strfmon (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, ...) __THROW __attribute_format_strfmon__ (3, 4);
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja strfmon()
Argumenty:
char *__restrict __s -
size_t __maxsize -
const char *__restrict __format -
... -
Zwracana wartość:
char * -
Argumenty:
char *__restrict __s -
size_t __maxsize -
const char *__restrict __format -
Conversion Specification | Output | Comments |
---|---|---|
%n | $123.45 -$123.45 $3,346.78 | default formatting |
%11n | $123.45 -$123.45 $3,346.78 | right align within an 11 character field |
%#5n | $ 123.45 -$ 123.45 $ 3,456.78 | aligned columns for values up to 99,999 |
%=*#5n | $***123.45 -$***123.45 $*3,456.78 | specify a fill character |
%=0#5n | $000123.45 -$000123.45 $03,456.78 | fill characters do not use grouping even if the fill character is a digit |
%^#5n | $ 123.45 -$ 123.45 $ 3456.78 | disable the grouping separator |
%^#5.0n | $ 123 -$ 123 $ 3457 | round off to whole units |
%^#5.4n | $ 123.4500 -$ 123.4500 $ 3456.7810 | increase the precision |
%(#5n | 123.45 ($ 123.45) $ 3,456.78 | use an alternative pos/neg style |
%!(#5m | 123.45 ( 123.45) 3,456.78 | cancel the currency sign |
Zwracana wartość:
char * -
Example:
zawartość pliku
strfmon.c
SELECT ALL
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
program wyświetli informacje o sposobie uruchamiania programu:
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
rezultat będzie zależny od podanych argumentów wywołania programu:
#top strlen¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strlen()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strlen()
jest następująca:/* Return the length of S. */ extern size_t strlen (__const char *__s) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
strlen(), strnlen(),
Opis:
Funkcja strlen() zwraca długość łańcucha znaków przekazanego w argumencie __s z wykluczeniem znaku końca łańcucha znaków '\0' = 0x00. Funkcja strlen() nie posiada żadnego ograniczenia dotyczącego ilości znaków (obszaru pamięci), które są przeglądanego w poszukiwaniu znaku '\0' = 0x00 (znak oznaczający koniec łańcucha znaków) przekazanego w argumencie __s, toteż uznawana jest za mniej bezpieczną, zalecane jest stosowanie bezpieczniejszego zamiennika tej funkcji strnlen().
Argumenty:
const char *__s -
Zwracana wartość:
size_t -
Argumenty:
const char *__s -
Zwracana wartość:
size_t -
#top strncasecmp¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strncasecmp()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strncasecmp()
jest następująca:/* Compare no more than N chars of S1 and S2, ignoring case. */ extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
memcmp(), strcoll(), strncasecmp(), strncmp(), strverscmp(),
Opis:
Funkcja strncasecmp()
Argumenty:
const char *__s1 -
const char *__s2 -
Zwracana wartość:
int -
Argumenty:
const char *__s1 -
const char *__s2 -
Zwracana wartość:
int -
#top strncat¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strncat()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strncat()
jest następująca:/* Append no more than N characters from SRC onto DEST. */ extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja strncat() podobnie jak funkcja strcat() dołącza ("dokleja") do łańcucha znaków (wskaźnika do łańcucha znaków) przekazanego w argumencie __dest łańcuch znaków (wskaźnik do łańcucha znaków) przekazany w argumencie __src. Funkcja strncat() dołącza ("dokleja") do wskaźnika przekazanego w argumencie __dest nie więcej niż ilość znaków przekazaną w argumencie __n, toteż uznawana jest za bezpieczną i zalecane jest jej stosowanie.
Stosowanie tej funkcji wymaga jednak dokładnej znajomości sposobu jej działania, poniższy artykuł jak również poniższy przykład przedstawia poprawnego używania tej funkcji. strlcpy and strlcat - consistent, safe, string copy and concatenation.
Argumenty:
char *__restrict __dest - łańcuch znaków (wskaźnik do łańcucha znaków) do którego dołączony zostanie łańcuch znaków przekazany w argumencie __src.
const char *__restrict __src - łańcuch znaków (wskaźnik do łańcucha znaków) który dołączany ("doklejany") do łańcucha znaków przekazanego w argumencie __dest.
size_t __n -
Zwracana wartość:
char * -
Stosowanie tej funkcji wymaga jednak dokładnej znajomości sposobu jej działania, poniższy artykuł jak również poniższy przykład przedstawia poprawnego używania tej funkcji. strlcpy and strlcat - consistent, safe, string copy and concatenation.
Argumenty:
char *__restrict __dest - łańcuch znaków (wskaźnik do łańcucha znaków) do którego dołączony zostanie łańcuch znaków przekazany w argumencie __src.
const char *__restrict __src - łańcuch znaków (wskaźnik do łańcucha znaków) który dołączany ("doklejany") do łańcucha znaków przekazanego w argumencie __dest.
size_t __n -
Zwracana wartość:
char * -
Example:
zawartość pliku
strncpy.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; char line1[16]; char line2[16]; char line3[16]; char line4[16]; char line5[16]; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s 0123456789\n", argv[0]); return 0; } memset(line1, 0x00, sizeof(line1)); memset(line2, 0x00, sizeof(line2)); memset(line3, 0x00, sizeof(line3)); memset(line4, 0x00, sizeof(line4)); memset(line5, 0x00, sizeof(line5)); strncat(line3, argv[1], sizeof(line3)); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); strncat(line3, argv[1], sizeof(line3)); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); strncat(line3, argv[1], sizeof(line3)); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); strncat(line2, argv[1], sizeof(line2)); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); strncat(line4, argv[1], sizeof(line4)); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); printf("\n"); memset(line1, 0x00, sizeof(line1)); memset(line2, 0x00, sizeof(line2)); memset(line3, 0x00, sizeof(line3)); memset(line4, 0x00, sizeof(line4)); memset(line5, 0x00, sizeof(line5)); strncat(line3, argv[1], sizeof(line3)-strlen(line3)-1); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); strncat(line3, argv[1], sizeof(line3)-strlen(line3)-1); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); strncat(line3, argv[1], sizeof(line3)-strlen(line3)-1); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); strncat(line4, argv[1], sizeof(line4)-strlen(line4)-1); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); strncat(line2, argv[1], sizeof(line2)-strlen(line2)-1); printf("%s: line1=|%s| line2=|%s| line3=|%s| line4=|%s| line5=|%s|\n", self, line1, line2, line3, line4, line5); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strncpyprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strncat <some-text> Examples: /home/local/code/ansiccode/strings/strncat 0123456789
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strncat 0123456789rezultat będzie zależny od podanych argumentów wywołania programu:
strncat: line1=|| line2=|| line3=|0123456789| line4=|| line5=|| strncat: line1=|| line2=|6789| line3=|01234567890123456789| line4=|| line5=|| strncat: line1=|| line2=|67890123456789| line3=|012345678901234567890123456789| line4=|| line5=|| strncat: line1=|23456789| line2=|678901234567890123456789| line3=|0123456789012345678901234567890123456789| line4=|| line5=|| strncat: line1=|23456789| line2=|678901234567890123456789| line3=|0123456789012345678901234567890123456789| line4=|0123456789| line5=|| strncat: line1=|| line2=|| line3=|0123456789| line4=|| line5=|| strncat: line1=|| line2=|| line3=|012345678901234| line4=|| line5=|| strncat: line1=|| line2=|| line3=|012345678901234| line4=|| line5=|| strncat: line1=|| line2=|| line3=|012345678901234| line4=|0123456789| line5=|| strncat: line1=|| line2=|0123456789| line3=|012345678901234| line4=|0123456789| line5=||
#top strncmp¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strncmp()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strncmp()
jest następująca:/* Compare N characters of S1 and S2. */ extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
memcmp(), strcoll(), strncasecmp(), strncmp(), strverscmp(),
Opis:
Funkcja strncmp() podobnie jak funkcja strcmp() porównuje łańcuchy znaków przekazane w argumentach wywołania __s1 oraz __s2 i zwraca wartość całkowitoliczbową: mniejszą od zera jeśli ciąg znaków przekazany w argumencie __s1 jest mniejszy (mniejszy, ale nie w sensie długości ciągu znaków) niż ciąg znaków przekazany w argumencie __s2, równą zero jeśli ciąg znaków przekazany w argumencie __s1 jest równy ciągowi znaków przekazanemu w argumencie __s2, lub większą od zera jeśli ciąg znaków przekazany w argumencie __s1 jest większy (większy, ale nie w sensie długości ciągu znaków) niż ciąg znaków przekazany w argumencie __s2. Funkcja strcmp() porównuje określoną argumentem __n ilość znaków przekazanych w argumentach __s1 i __s2 toteż uznawana jest za bezpieczną i zalecane jest jej stosowane.
Argumenty:
const char *__s1 - łańcuch znaków (wskaźnik do łańcucha znaków) który zostanie porównany z łańcuchem znaków przekazanym w argumencie __s2.
const char *__s2 - łańcuch znaków (wskaźnik do łańcucha znaków) który zostanie porównany z łańcuchem znaków przekazanym w argumencie __s1.
size_t __n - ilość porównywanych znaków przekazanych w argumentach __s1 i __s2.
Zwracana wartość:
int - wynik porówniania: wartość większa od zera, równa zero, mniejsza od zera.
Argumenty:
const char *__s1 - łańcuch znaków (wskaźnik do łańcucha znaków) który zostanie porównany z łańcuchem znaków przekazanym w argumencie __s2.
const char *__s2 - łańcuch znaków (wskaźnik do łańcucha znaków) który zostanie porównany z łańcuchem znaków przekazanym w argumencie __s1.
size_t __n - ilość porównywanych znaków przekazanych w argumentach __s1 i __s2.
Zwracana wartość:
int - wynik porówniania: wartość większa od zera, równa zero, mniejsza od zera.
Example:
zawartość pliku
strncmp.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; int result; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s text0 text0\n", argv[0]); printf(" %s text1 text2\n", argv[0]); printf(" %s text2 text1\n", argv[0]); printf(" %s text1 text222\n", argv[0]); printf(" %s text111 text2\n", argv[0]); printf(" %s text222 text1\n", argv[0]); printf(" %s text2 text111\n", argv[0]); printf(" %s text-v.0.0.1 text-v.0.0.2\n", argv[0]); printf(" %s text-v.0.1 text-v.0.0.2\n", argv[0]); printf(" %s text-v.1 text-v.0.0.2\n", argv[0]); printf(" %s text-v.0.15.1 text-v.0.1.15\n", argv[0]); printf(" %s text-v.0.15.1 text-v.0.2.15\n", argv[0]); printf(" %s text-v.0.15.1 text-v.0.3.15\n", argv[0]); return 0; } printf("%s: result=strncmp(argv[1]=|%s|, argv[2]=|%s|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=%d:strlen(argv[2])=%d):\n", self, argv[1], argv[2], (unsigned int)strlen(argv[1]), (unsigned int)strlen(argv[2])); result=strncmp(argv[1], argv[2], strlen(argv[1])<strlen(argv[2])?strlen(argv[1]):strlen(argv[2])); printf("%s: result=strncmp(argv[1]=|%s|, argv[2]=|%s|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=%d:strlen(argv[2])=%d): result=%d\n", self, argv[1], argv[2], (unsigned int)strlen(argv[1]), (unsigned int)strlen(argv[2]), result); #if defined(HAVE_STRNCASECMP) printf("%s: result=strncasecmp(argv[1]=|%s|, argv[2]=|%s|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=%d:strlen(argv[2])=%d):\n", self, argv[1], argv[2], (unsigned int)strlen(argv[1]), (unsigned int)strlen(argv[2])); result=strncasecmp(argv[1], argv[2], strlen(argv[1])<strlen(argv[2])?strlen(argv[1]):strlen(argv[2])); printf("%s: result=strncasecmp(argv[1]=|%s|, argv[2]=|%s|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=%d:strlen(argv[2])=%d): result=%d\n", self, argv[1], argv[2], (unsigned int)strlen(argv[1]), (unsigned int)strlen(argv[2]), result); #else /* strncasecmp() is not available on this OS platform !!! */ printf("%s: strncasecmp() is not available on this OS platform !!!\n", self); #endif #if defined(HAVE_STRVERSCMP) printf("%s: result=strncasecmp(argv[1]=|%s|, argv[2]=|%s|):\n", self, argv[1], argv[2]); result=strverscmp(argv[1], argv[2]); printf("%s: result=strncasecmp(argv[1]=|%s|, argv[2]=|%s|): result=%d\n", self, argv[1], argv[2], result); #else /* strverscmp() is not available on this OS platform !!! */ printf("%s: strverscmp() is not available on this OS platform !!!\n", self); #endif return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strncmpprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strncmp <some-text> Examples: /home/local/code/ansiccode/strings/strncmp text0 text0 /home/local/code/ansiccode/strings/strncmp text1 text2 /home/local/code/ansiccode/strings/strncmp text2 text1 /home/local/code/ansiccode/strings/strncmp text1 text222 /home/local/code/ansiccode/strings/strncmp text111 text2 /home/local/code/ansiccode/strings/strncmp text222 text1 /home/local/code/ansiccode/strings/strncmp text2 text111 /home/local/code/ansiccode/strings/strncmp text-v.0.0.1 text-v.0.0.2 /home/local/code/ansiccode/strings/strncmp text-v.0.1 text-v.0.0.2 /home/local/code/ansiccode/strings/strncmp text-v.1 text-v.0.0.2 /home/local/code/ansiccode/strings/strncmp text-v.0.15.1 text-v.0.1.15 /home/local/code/ansiccode/strings/strncmp text-v.0.15.1 text-v.0.2.15 /home/local/code/ansiccode/strings/strncmp text-v.0.15.1 text-v.0.3.15
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strncmp text0 text0 /home/local/code/ansiccode/strings/strncmp text1 text2 /home/local/code/ansiccode/strings/strncmp text2 text1 /home/local/code/ansiccode/strings/strncmp text1 text222 /home/local/code/ansiccode/strings/strncmp text111 text2 /home/local/code/ansiccode/strings/strncmp text222 text1 /home/local/code/ansiccode/strings/strncmp text2 text111 /home/local/code/ansiccode/strings/strncmp text-v.0.0.1 text-v.0.0.2 /home/local/code/ansiccode/strings/strncmp text-v.0.1 text-v.0.0.2 /home/local/code/ansiccode/strings/strncmp text-v.1 text-v.0.0.2 /home/local/code/ansiccode/strings/strncmp text-v.0.15.1 text-v.0.1.15 /home/local/code/ansiccode/strings/strncmp text-v.0.15.1 text-v.0.2.15 /home/local/code/ansiccode/strings/strncmp text-v.0.15.1 text-v.0.3.15rezultat będzie zależny od podanych argumentów wywołania programu:
strncmp: result=strncmp(argv[1]=|text0|, argv[2]=|text0|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): strncmp: result=strncmp(argv[1]=|text0|, argv[2]=|text0|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): result=0 strncmp: result=strncasecmp(argv[1]=|text0|, argv[2]=|text0|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): strncmp: result=strncasecmp(argv[1]=|text0|, argv[2]=|text0|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): result=0 strncmp: result=strncasecmp(argv[1]=|text0|, argv[2]=|text0|): strncmp: result=strncasecmp(argv[1]=|text0|, argv[2]=|text0|): result=0 strncmp: result=strncmp(argv[1]=|text1|, argv[2]=|text2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): strncmp: result=strncmp(argv[1]=|text1|, argv[2]=|text2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): result=-1 strncmp: result=strncasecmp(argv[1]=|text1|, argv[2]=|text2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): strncmp: result=strncasecmp(argv[1]=|text1|, argv[2]=|text2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): result=-1 strncmp: result=strncasecmp(argv[1]=|text1|, argv[2]=|text2|): strncmp: result=strncasecmp(argv[1]=|text1|, argv[2]=|text2|): result=-1 strncmp: result=strncmp(argv[1]=|text2|, argv[2]=|text1|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): strncmp: result=strncmp(argv[1]=|text2|, argv[2]=|text1|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): result=1 strncmp: result=strncasecmp(argv[1]=|text2|, argv[2]=|text1|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): strncmp: result=strncasecmp(argv[1]=|text2|, argv[2]=|text1|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=5): result=1 strncmp: result=strncasecmp(argv[1]=|text2|, argv[2]=|text1|): strncmp: result=strncasecmp(argv[1]=|text2|, argv[2]=|text1|): result=1 strncmp: result=strncmp(argv[1]=|text1|, argv[2]=|text222|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=7): strncmp: result=strncmp(argv[1]=|text1|, argv[2]=|text222|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=7): result=-1 strncmp: result=strncasecmp(argv[1]=|text1|, argv[2]=|text222|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=7): strncmp: result=strncasecmp(argv[1]=|text1|, argv[2]=|text222|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=7): result=-1 strncmp: result=strncasecmp(argv[1]=|text1|, argv[2]=|text222|): strncmp: result=strncasecmp(argv[1]=|text1|, argv[2]=|text222|): result=-1 strncmp: result=strncmp(argv[1]=|text111|, argv[2]=|text2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=7:strlen(argv[2])=5): strncmp: result=strncmp(argv[1]=|text111|, argv[2]=|text2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=7:strlen(argv[2])=5): result=-1 strncmp: result=strncasecmp(argv[1]=|text111|, argv[2]=|text2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=7:strlen(argv[2])=5): strncmp: result=strncasecmp(argv[1]=|text111|, argv[2]=|text2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=7:strlen(argv[2])=5): result=-1 strncmp: result=strncasecmp(argv[1]=|text111|, argv[2]=|text2|): strncmp: result=strncasecmp(argv[1]=|text111|, argv[2]=|text2|): result=1 strncmp: result=strncmp(argv[1]=|text222|, argv[2]=|text1|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=7:strlen(argv[2])=5): strncmp: result=strncmp(argv[1]=|text222|, argv[2]=|text1|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=7:strlen(argv[2])=5): result=1 strncmp: result=strncasecmp(argv[1]=|text222|, argv[2]=|text1|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=7:strlen(argv[2])=5): strncmp: result=strncasecmp(argv[1]=|text222|, argv[2]=|text1|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=7:strlen(argv[2])=5): result=1 strncmp: result=strncasecmp(argv[1]=|text222|, argv[2]=|text1|): strncmp: result=strncasecmp(argv[1]=|text222|, argv[2]=|text1|): result=1 strncmp: result=strncmp(argv[1]=|text2|, argv[2]=|text111|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=7): strncmp: result=strncmp(argv[1]=|text2|, argv[2]=|text111|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=7): result=1 strncmp: result=strncasecmp(argv[1]=|text2|, argv[2]=|text111|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=7): strncmp: result=strncasecmp(argv[1]=|text2|, argv[2]=|text111|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=5:strlen(argv[2])=7): result=1 strncmp: result=strncasecmp(argv[1]=|text2|, argv[2]=|text111|): strncmp: result=strncasecmp(argv[1]=|text2|, argv[2]=|text111|): result=-1 strncmp: result=strncmp(argv[1]=|text-v.0.0.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=12:strlen(argv[2])=12): strncmp: result=strncmp(argv[1]=|text-v.0.0.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=12:strlen(argv[2])=12): result=-1 strncmp: result=strncasecmp(argv[1]=|text-v.0.0.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=12:strlen(argv[2])=12): strncmp: result=strncasecmp(argv[1]=|text-v.0.0.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=12:strlen(argv[2])=12): result=-1 strncmp: result=strncasecmp(argv[1]=|text-v.0.0.1|, argv[2]=|text-v.0.0.2|): strncmp: result=strncasecmp(argv[1]=|text-v.0.0.1|, argv[2]=|text-v.0.0.2|): result=-1 strncmp: result=strncmp(argv[1]=|text-v.0.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=10:strlen(argv[2])=12): strncmp: result=strncmp(argv[1]=|text-v.0.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=10:strlen(argv[2])=12): result=1 strncmp: result=strncasecmp(argv[1]=|text-v.0.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=10:strlen(argv[2])=12): strncmp: result=strncasecmp(argv[1]=|text-v.0.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=10:strlen(argv[2])=12): result=1 strncmp: result=strncasecmp(argv[1]=|text-v.0.1|, argv[2]=|text-v.0.0.2|): strncmp: result=strncasecmp(argv[1]=|text-v.0.1|, argv[2]=|text-v.0.0.2|): result=1 strncmp: result=strncmp(argv[1]=|text-v.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=8:strlen(argv[2])=12): strncmp: result=strncmp(argv[1]=|text-v.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=8:strlen(argv[2])=12): result=1 strncmp: result=strncasecmp(argv[1]=|text-v.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=8:strlen(argv[2])=12): strncmp: result=strncasecmp(argv[1]=|text-v.1|, argv[2]=|text-v.0.0.2|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=8:strlen(argv[2])=12): result=1 strncmp: result=strncasecmp(argv[1]=|text-v.1|, argv[2]=|text-v.0.0.2|): strncmp: result=strncasecmp(argv[1]=|text-v.1|, argv[2]=|text-v.0.0.2|): result=1 strncmp: result=strncmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.1.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): strncmp: result=strncmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.1.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): result=7 strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.1.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.1.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): result=7 strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.1.15|): strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.1.15|): result=1 strncmp: result=strncmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.2.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): strncmp: result=strncmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.2.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): result=-1 strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.2.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.2.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): result=-1 strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.2.15|): strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.2.15|): result=1 strncmp: result=strncmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.3.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): strncmp: result=strncmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.3.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): result=-2 strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.3.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.3.15|, strlen(argv[1])>strlen(argv[2])?strlen(argv[1])=13:strlen(argv[2])=13): result=-2 strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.3.15|): strncmp: result=strncasecmp(argv[1]=|text-v.0.15.1|, argv[2]=|text-v.0.3.15|): result=1
#top strncpy¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strncpy()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strncpy()
jest następująca:/* Copy no more than N characters of SRC to DEST. */ extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja strncpy() podobnie jak funkcja strcpy() kopiuje łańcuch znaków (wskaźnik do łańcucha znaków) przekazany w argumencie __src do łańcucha znaków (wskaźnika do łańcucha znaków) przekazanego w argumencie __dest. Funkcja strncpy() kopiuje do wskaźnika przekazanego w argumencie __dest nie więcej niż ilość znaków przekazaną w argumencie __n toteż uznawana jest za bezpieczną i zalecane jest jest stosowanie.
Stosowanie tej funkcji wymaga jednak dokładnej znajomości sposobu jej działania, poniższy artykuł jak również poniższy przykład przedstawia poprawnego używania tej funkcji. strlcpy and strlcat - consistent, safe, string copy and concatenation.
Argumenty:
char *__restrict __dest -
const char *__restrict __src -
size_t __n -
Zwracana wartość:
char * -
Stosowanie tej funkcji wymaga jednak dokładnej znajomości sposobu jej działania, poniższy artykuł jak również poniższy przykład przedstawia poprawnego używania tej funkcji. strlcpy and strlcat - consistent, safe, string copy and concatenation.
Argumenty:
char *__restrict __dest -
const char *__restrict __src -
size_t __n -
Zwracana wartość:
char * -
Example:
zawartość pliku
strncpy.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; char buffer[16]; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s sometext\n", argv[0]); printf(" %s 012345678901234567890123456789\n", argv[0]); return 0; } memset(buffer, 0x00, sizeof(buffer)); strncpy(buffer, argv[1], sizeof(buffer)); printf("%s: strlen(buffer)=%02u sizeof(buffer)=%lu buffer=|%s|\n", self, (unsigned int)strlen(buffer), (unsigned long int)sizeof(buffer), buffer); memset(buffer, 0x00, sizeof(buffer)); strncpy(buffer, argv[1], sizeof(buffer)-1); printf("%s: strlen(buffer)=%02u sizeof(buffer)=%lu buffer=|%s|\n", self, (unsigned int)strlen(buffer), (unsigned long int)sizeof(buffer), buffer); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strncpyprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strncpy <some-text> Examples: /home/local/code/ansiccode/strings/strncpy sometext /home/local/code/ansiccode/strings/strncpy 012345678901234567890123456789
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strncpy sometext /home/local/code/ansiccode/strings/strncpy 012345678901234567890123456789rezultat będzie zależny od podanych argumentów wywołania programu:
strncpy: strlen(buffer)=08 sizeof(buffer)=16 buffer=|sometext| strncpy: strlen(buffer)=08 sizeof(buffer)=16 buffer=|sometext| strncpy: strlen(buffer)=24 sizeof(buffer)=16 buffer=|0123456789012345PHǿ�:ǿ| strncpy: strlen(buffer)=15 sizeof(buffer)=16 buffer=|012345678901234|
#top strndup¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strndup()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strndup()
jest następująca:/* Return a malloc'd copy of at most N bytes of STRING. The resultant string is terminated even if no null terminator appears before STRING[N]. */ #if defined __USE_GNU extern char *strndup (__const char *__string, size_t __n) __THROW __attribute_malloc__ __nonnull ((1)); #endif
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Example:
zawartość pliku
strndup.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <stdlib.h> /* for RAND_MAX, EXIT_FAILURE, EXIT_SUCCESS, MB_CUR_MAX, atoi(), atol(), atoll(), atof(), strtod(), strtof(), strtold(), strtol(), strtoul(), strtoq(), strtouq(), strtoll(), strtoull(), */ /* for sys/types.h, malloc.h replaced by stdlib.h, random(), srandom(), rand(), srand(), abort(), atexit(), on_exit(), exit(), getenv(), */ /* for putenv(), setenv(), clearenv(), mktemp(), mkstemp(), mkdtemp(), system(), realpath(), abs(), labs(), llabs(), getloadavg(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; #if defined(HAVE_STRNDUP) char *strptr; #endif self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s text\n", argv[0]); printf(" %s 1234567890012345678901234567890123456789\n", argv[0]); return 0; } #if defined(HAVE_STRNDUP) printf("%s: strptr=strndup(argv[1]=|%s|, 32):\n", self, argv[1]); strptr=strndup(argv[1], 32); printf("%s: strptr=strndup(argv[1]=|%s|, 32): strptr=|%s|\n", self, argv[1], strptr); free(strptr); #else /* strndup() is not available on this OS platform !!! */ printf("%s: strndup() is not available on this OS platform !!!\n", self); #endif return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strncpyprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strncpy <some-text> Examples: /home/local/code/ansiccode/strings/strncpy text /home/local/code/ansiccode/strings/strncpy chunk
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strncpy text /home/local/code/ansiccode/strings/strncpy chunkrezultat będzie zależny od podanych argumentów wywołania programu:
strncpy: strlen(buffer)=04 sizeof(buffer)=32 buffer=|text| strncpy: strlen(buffer)=08 sizeof(buffer)=32 buffer=|texttext| strncpy: strlen(buffer)=12 sizeof(buffer)=32 buffer=|texttexttext| strncpy: strlen(buffer)=16 sizeof(buffer)=32 buffer=|texttexttexttext| strncpy: strlen(buffer)=20 sizeof(buffer)=32 buffer=|texttexttexttexttext| strncpy: strlen(buffer)=24 sizeof(buffer)=32 buffer=|texttexttexttexttexttext| strncpy: strlen(buffer)=28 sizeof(buffer)=32 buffer=|texttexttexttexttexttexttext| strncpy: strlen(buffer)=31 sizeof(buffer)=32 buffer=|texttexttexttexttexttexttexttex| strncpy: strlen(buffer)=31 sizeof(buffer)=32 buffer=|texttexttexttexttexttexttexttex| strncpy: strlen(buffer)=05 sizeof(buffer)=32 buffer=|chunk| strncpy: strlen(buffer)=10 sizeof(buffer)=32 buffer=|chunkchunk| strncpy: strlen(buffer)=15 sizeof(buffer)=32 buffer=|chunkchunkchunk| strncpy: strlen(buffer)=20 sizeof(buffer)=32 buffer=|chunkchunkchunkchunk| strncpy: strlen(buffer)=25 sizeof(buffer)=32 buffer=|chunkchunkchunkchunkchunk| strncpy: strlen(buffer)=30 sizeof(buffer)=32 buffer=|chunkchunkchunkchunkchunkchunk| strncpy: strlen(buffer)=31 sizeof(buffer)=32 buffer=|chunkchunkchunkchunkchunkchunkc| strncpy: strlen(buffer)=31 sizeof(buffer)=32 buffer=|chunkchunkchunkchunkchunkchunkc| strncpy: strlen(buffer)=31 sizeof(buffer)=32 buffer=|chunkchunkchunkchunkchunkchunkc|
#top strnlen¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strnlen()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strnlen()
jest następująca:/* Find the length of STRING, but scan at most MAXLEN characters. If no '\0' terminator is found in that many characters, return MAXLEN. */ extern size_t strnlen (__const char *__string, size_t __maxlen) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
strlen(), strnlen(),
Opis:
Funkcja strnlen() zwraca długość łańcucha znaków przekazanego w argumencie __s z wykluczeniem znaku końca łańcucha znaków '\0' = 0x00. Funkcja strnlen() przeszukuje ograniczoną argumentem __maxlen wielkość łańcucha znaków (obszaru pamięci), które są przeglądanego w poszukiwaniu znaku '\0' = 0x00 (znak oznaczający koniec łańcucha znaków) przekazanego w argumencie __s, toteż uznawana jest za bezpieczną i zalecane jest jest stosowanie.
Argumenty:
const char *__string -
size_t __maxlen -
Zwracana wartość:
size_t -
strnlen() using the equivalent of the following algorithm:Argumenty:
const char *__string -
size_t __maxlen -
Zwracana wartość:
size_t -
SELECT ALL
size_t strnlen(const char *__string, const size_t __maxlen) { char *__strptr = memchr(__string, 0x00, __maxlen); if (__strptr!=NULL) return __strptr - __string; else return __maxlen; }
Example:
zawartość pliku
strnlen.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; #if defined(HAVE_STRNLEN) int result; #endif self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s text\n", argv[0]); printf(" %s 1234567890012345678901234567890123456789\n", argv[0]); return 0; } #if defined(HAVE_STRNLEN) printf("%s: result=strnlen(argv[1]=|%s|, 32):\n", self, argv[1]); result=strnlen(argv[1], 32); printf("%s: result=strnlen(argv[1]=|%s|, 32): result=%d\n", self, argv[1], result); #else /* strnlen() is not available on this OS platform !!! */ printf("%s: strnlen() is not available on this OS platform !!!\n", self); #endif return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strnlenprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strnlen <some-text> Examples: /home/local/code/ansiccode/strings/strnlen text /home/local/code/ansiccode/strings/strnlen 1234567890012345678901234567890123456789
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strnlen text /home/local/code/ansiccode/strings/strnlen 1234567890012345678901234567890123456789rezultat będzie zależny od podanych argumentów wywołania programu:
strnlen: result=strnlen(argv[1]=|text|, 32): strnlen: result=strnlen(argv[1]=|text|, 32): result=4 strnlen: result=strnlen(argv[1]=|1234567890012345678901234567890123456789|, 32): strnlen: result=strnlen(argv[1]=|1234567890012345678901234567890123456789|, 32): result=32
#top strpbrk¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strpbrk()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strpbrk()
jest następująca:/* Find the first occurrence in S of any character in ACCEPT. */ extern char *strpbrk (__const char *__s, __const char *__accept) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
strcspn(), strpbrk(), strspn(),
Opis:
Funkcja strpbrk() przeszukuje łańcuch znaków podany w argumencie __s w poszukiwaniu dowolnego znaku podanego w argumencie __accept i zwraca wskaźnik do znalezionego znaku lub NULL w przypadku gdy nie zostanie znaleziony żaden znak. Kolejne iteracje poszukiwania znaków wykonywane powinny być z użyciem zwróconego wskaźnika + 1.
Argumenty:
const char *__s -
const char *__accept -
Zwracana wartość:
char * -
Argumenty:
const char *__s -
const char *__accept -
Zwracana wartość:
char * -
Example:
zawartość pliku
strpbrk.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; char *strtext; char *keytext; char *chrptr; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<3) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s \"This is a sample string\" aeiouy\n", argv[0]); printf(" %s \"scheme://user:pass@host:port/path?query#anchor\" \"@#$%%^&*-_=+;:,./?\"\n", argv[0]); return 0; } strtext=argv[1]; keytext=argv[2]; printf("%s: Letters in strtext=|%s| are |", self, strtext); chrptr=strpbrk (strtext, keytext); while (chrptr!=NULL) { printf("%c ", *chrptr); chrptr=strpbrk(chrptr+1, keytext); } printf("|\n"); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strpbrkprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strpbrk <some-text> Examples: /home/local/code/ansiccode/strings/strpbrk "This is a sample string" aeiouy /home/local/code/ansiccode/strings/strpbrk "scheme://user:pass@host:port/path?query#anchor" "@#$%^&*-_=+;:,./?"
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strpbrk "This is a sample string" aeiouy /home/local/code/ansiccode/strings/strpbrk "scheme://user:pass@host:port/path?query#anchor" "@#$%^&*-_=+;:,./?"rezultat będzie zależny od podanych argumentów wywołania programu:
strpbrk: Letters in strtext=|This is a sample string| are |i i a a e i | strpbrk: Letters in strtext=|scheme://user:pass@host:port/path?query#anchor| are |: / / : @ : / ? # |
#top strrchr¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strrchr()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strrchr()
jest następująca:/* Find the last occurrence of C in S. */ extern char *strrchr (__const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja strrchr() podobnie jak funkcja strchr() przeszukuje łańcuch znaków (wskaźnik do łańcucha znaków) podany w argumencie __s w poszukiwaniu znaku przekazanego w argumencie __c i zwraca wskaźnik do łańcucha znaków do miejsca rozpoczynającego się od znalezionego znaku, jednakże w odróżnieniu od funkcji strchr() podany obszar przeszukiwany jest wstecz (przeszukiwanie rozpoczyna się od adresu __s + strlen(__s), przeszukiwanie wykonywane jest do adresu __s). W przypadku gdy poszukiwany znak nie zostanie znaleziony zwracany jest NULL.
Argumenty:
const char *__s -
int __c -
Zwracana wartość:
char * -
Argumenty:
const char *__s -
int __c -
Zwracana wartość:
char * -
#top strsep¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strsep()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strsep()
jest następująca:/* Return the next DELIM-delimited token from *STRINGP, terminating it with a '\0', and update *STRINGP to point past it. */ extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) __THROW __nonnull ((1, 2));
Powiązane:
strpbrk(), strsep(), strtok(),
Opis:
Funkcja strsep()
Argumenty:
char **__restrict __stringp -
const char *__restrict __delim -
Zwracana wartość:
char * -
Argumenty:
char **__restrict __stringp -
const char *__restrict __delim -
Zwracana wartość:
char * -
Example:
zawartość pliku
strsep.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; #if defined(HAVE_STRSEP) char **srcs; char *strptr; #endif self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s \"some text for test strsep() function working on string\" \" \"\n", argv[0]); return 0; } #if defined(HAVE_STRSEP) srcs=&argv[1]; do { printf("%s: strptr=strsep(srcs=|%s|, argv[2]=|%s|):\n", self, *srcs, argv[2]); strptr=strsep(srcs, argv[2]); printf("%s: strptr=strsep(srcs=|%s|, argv[2]=|%s|): strptr=|%s|\n", self, *srcs, argv[2], strptr); } while (strptr!=NULL); #else /* strsep() is not available on this OS platform !!! */ printf("%s: strsep() is not available on this OS platform !!!\n", self); #endif return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strsepprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strsep <some-text> Examples: /home/local/code/ansiccode/strings/strsep "some text for test strsep() function working on string" " "
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strsep "some text for test strsep() function working on string" " "rezultat będzie zależny od podanych argumentów wywołania programu:
strsep: strptr=strsep(srcs=|some text for test strsep() function working on string|, argv[2]=| |): strsep: strptr=strsep(srcs=|text for test strsep() function working on string|, argv[2]=| |): strptr=|some| strsep: strptr=strsep(srcs=|text for test strsep() function working on string|, argv[2]=| |): strsep: strptr=strsep(srcs=|for test strsep() function working on string|, argv[2]=| |): strptr=|text| strsep: strptr=strsep(srcs=|for test strsep() function working on string|, argv[2]=| |): strsep: strptr=strsep(srcs=|test strsep() function working on string|, argv[2]=| |): strptr=|for| strsep: strptr=strsep(srcs=|test strsep() function working on string|, argv[2]=| |): strsep: strptr=strsep(srcs=|strsep() function working on string|, argv[2]=| |): strptr=|test| strsep: strptr=strsep(srcs=|strsep() function working on string|, argv[2]=| |): strsep: strptr=strsep(srcs=|function working on string|, argv[2]=| |): strptr=|strsep()| strsep: strptr=strsep(srcs=|function working on string|, argv[2]=| |): strsep: strptr=strsep(srcs=|working on string|, argv[2]=| |): strptr=|function| strsep: strptr=strsep(srcs=|working on string|, argv[2]=| |): strsep: strptr=strsep(srcs=|on string|, argv[2]=| |): strptr=|working| strsep: strptr=strsep(srcs=|on string|, argv[2]=| |): strsep: strptr=strsep(srcs=|string|, argv[2]=| |): strptr=|on| strsep: strptr=strsep(srcs=|string|, argv[2]=| |): strsep: strptr=strsep(srcs=|(null)|, argv[2]=| |): strptr=|string| strsep: strptr=strsep(srcs=|(null)|, argv[2]=| |): strsep: strptr=strsep(srcs=|(null)|, argv[2]=| |): strptr=|(null)|
#top strsignal¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strsignal()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strsignal()
jest następująca:/* Return a string describing the meaning of the signal number in SIG. */ extern char *strsignal (int __sig) __THROW;
Powiązane:
strsignal(),
Opis:
Funkcja strsignal() zwraca łańcuch znaków (wskaźnik do łańcucha znaków) zawierający tekstowy opis sygnału przekazanego w argumencie __sig.
Argumenty:
int __sig - numer sygnału dla którego zostanie zwrócony łańcuch znaków zawierający tekstowy opis sygnału.
Zwracana wartość:
char * - łańcuch znaków zawierający tekstowy opis sygnału dla numeru sygnału przekazanego w argumencie __sig.
Argumenty:
int __sig - numer sygnału dla którego zostanie zwrócony łańcuch znaków zawierający tekstowy opis sygnału.
Zwracana wartość:
char * - łańcuch znaków zawierający tekstowy opis sygnału dla numeru sygnału przekazanego w argumencie __sig.
Example:
zawartość pliku
strsignal.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <stdlib.h> /* for RAND_MAX, EXIT_FAILURE, EXIT_SUCCESS, MB_CUR_MAX, atoi(), atol(), atoll(), atof(), strtod(), strtof(), strtold(), strtol(), strtoul(), strtoq(), strtouq(), strtoll(), strtoull(), */ /* for sys/types.h, malloc.h replaced by stdlib.h, random(), srandom(), rand(), srand(), abort(), atexit(), on_exit(), exit(), getenv(), */ /* for putenv(), setenv(), clearenv(), mktemp(), mkstemp(), mkdtemp(), system(), realpath(), abs(), labs(), llabs(), getloadavg(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; #if defined(HAVE_STRSIGNAL) int isign; char *ssign; #endif self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s\n", argv[0]); printf("Examples:\n"); printf(" %s 0\n", argv[0]); printf(" %s 1\n", argv[0]); printf(" %s 2\n", argv[0]); printf(" %s 3\n", argv[0]); printf(" %s 5\n", argv[0]); return 0; } #if defined(HAVE_STRSIGNAL) isign=atoi(argv[1]); ssign=strsignal(isign); printf("strsing=strsignal(%d): received signal: isign:ssign=%d:%s\n", isign, isign, ssign); #endif return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strsignalprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strsignal Examples: /home/local/code/ansiccode/strings/strsignal 0 /home/local/code/ansiccode/strings/strsignal 1 /home/local/code/ansiccode/strings/strsignal 2 /home/local/code/ansiccode/strings/strsignal 3 /home/local/code/ansiccode/strings/strsignal 5
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strsignal 0 /home/local/code/ansiccode/strings/strsignal 1 /home/local/code/ansiccode/strings/strsignal 2 /home/local/code/ansiccode/strings/strsignal 3 /home/local/code/ansiccode/strings/strsignal 5rezultat będzie zależny od podanych argumentów wywołania programu:
strsing=strsignal(0): received signal: isign:ssign=0:Unknown signal 0 strsing=strsignal(1): received signal: isign:ssign=1:Hangup strsing=strsignal(2): received signal: isign:ssign=2:Interrupt strsing=strsignal(3): received signal: isign:ssign=3:Quit strsing=strsignal(5): received signal: isign:ssign=5:Trace/breakpoint trap
#top strspn¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strspn()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strspn()
jest następująca:/* Return the length of the initial segment of S which consists entirely of characters in ACCEPT. */ extern size_t strspn (__const char *__s, __const char *__accept) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
strcspn(), strpbrk(), strspn(),
Opis:
Example:
zawartość pliku
strspn.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; char *strtext; char *accept; char *reject; int result; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<3) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s 129th 1234567890 abcdefghijklmnopqrstuvxyz\n", argv[0]); printf(" %s some4text4for3test4working7function8strspn abcdefghijklmnopqrstuvxyz 1234567890\n", argv[0]); return 0; } strtext=argv[1]; accept=argv[2]; reject=argv[3]; result=strspn(strtext, accept); printf("%s: The strtext=|%s| contains accept=|%s| initial number has %d chars.\n", self, strtext, accept, result); result=strcspn(strtext, reject); printf("%s: The strtext=|%s| contains first reject=|%s| chars at position %d.\n", self, strtext, reject, result+1); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strspnprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strspn <some-text> Examples: /home/local/code/ansiccode/strings/strspn 129th 1234567890 abcdefghijklmnopqrstuvxyz /home/local/code/ansiccode/strings/strspn some4text4for3test4working7function8strspn abcdefghijklmnopqrstuvxyz 1234567890
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strspn 129th 1234567890 abcdefghijklmnopqrstuvxyz /home/local/code/ansiccode/strings/strspn some4text4for3test4working7function8strspn abcdefghijklmnopqrstuvxyz 1234567890rezultat będzie zależny od podanych argumentów wywołania programu:
strspn: The strtext=|129th| contains accept=|1234567890| initial number has 3 chars. strspn: The strtext=|129th| contains first reject=|abcdefghijklmnopqrstuvxyz| chars at position 4. strspn: The strtext=|some4text4for3test4working7function8strspn| contains accept=|abcdefghijklmnopqrstuvxyz| initial number has 4 chars. strspn: The strtext=|some4text4for3test4working7function8strspn| contains first reject=|1234567890| chars at position 5.
#top strstr¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strstr()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strstr()
jest następująca:/* Find the first occurrence of NEEDLE in HAYSTACK. */ extern char *strstr (__const char *__haystack, __const char *__needle) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
memchr(), memmem(), memrchr(), rawmemchr(), strcasestr(), strchr(), strrchr(), strstr(),
Opis:
Funkcja strstr() znajduje pierwsze występienie łańcucha znaków przekazengo w argumencie __needle przeszukując łańcuch znaków podany w argumencie __haystack z zachowaniem wielkości znaków przy poszukiwaniu.
Argumenty:
const char *__haystack -
const char *__needle -
Zwracana wartość:
char * -
Argumenty:
const char *__haystack -
const char *__needle -
Zwracana wartość:
char * -
Example:
zawartość pliku
strstr.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; char *strptr; char chfirst; char chlast; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<4) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s \"some text for test strstr() FUNCTION working on STRING\" te \" \" \" \"\n", argv[0]); printf(" %s \"some text for test strstr() FUNCTION working on STRING\" on \" \" \" \"\n", argv[0]); printf(" %s \"some text for test strstr() FUNCTION working on STRING\" some t t\n", argv[0]); printf(" %s \"some text for test strstr() FUNCTION working on STRING\" string x x\n", argv[0]); return 0; } printf("%s: strptr=strsep(argv[1]=|%s|, argv[2]=|%s|):\n", self, argv[1], argv[2]); strptr=strstr(argv[1], argv[2]); printf("%s: strptr=strsep(argv[1]=|%s|, argv[2]=|%s|): strptr=|%s|\n", self, argv[1], argv[2], strptr); #if defined(HAVE_STRCASESTR) printf("%s: strptr=strcasestr(argv[1]=|%s|, argv[2]=|%s|):\n", self, argv[1], argv[2]); strptr=strcasestr(argv[1], argv[2]); printf("%s: strptr=strcasestr(argv[1]=|%s|, argv[2]=|%s|): strptr=|%s|\n", self, argv[1], argv[2], strptr); #else /* strcasestr() is not available on this OS platform !!! */ printf("%s: strcasestr() is not available on this OS platform !!!\n", self); #endif chfirst=argv[3][0]; printf("%s: strptr=strchr(argv[1]=|%s|, chfirst=|%c|):\n", self, argv[1], chfirst); strptr=strchr(argv[1], chfirst); printf("%s: strptr=strchr(argv[1]=|%s|, chfirst=|%c|): strptr=|%s|\n", self, argv[1], chfirst, strptr); chlast=argv[4][0]; printf("%s: strptr=strrchr(argv[1]=|%s|, chlast=|%c|):\n", self, argv[1], chlast); strptr=strrchr(argv[1], chlast); printf("%s: strptr=strrchr(argv[1]=|%s|, chlast=|%c|): strptr=|%s|\n", self, argv[1], chlast, strptr); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strstrprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strstr <some-text> Examples: /home/local/code/ansiccode/strings/strstr "some text for test strstr() FUNCTION working on STRING" te " " " " /home/local/code/ansiccode/strings/strstr "some text for test strstr() FUNCTION working on STRING" on " " " " /home/local/code/ansiccode/strings/strstr "some text for test strstr() FUNCTION working on STRING" some t t /home/local/code/ansiccode/strings/strstr "some text for test strstr() FUNCTION working on STRING" string x x
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strstr "some text for test strstr() FUNCTION working on STRING" te " " " " /home/local/code/ansiccode/strings/strstr "some text for test strstr() FUNCTION working on STRING" on " " " " /home/local/code/ansiccode/strings/strstr "some text for test strstr() FUNCTION working on STRING" some t t /home/local/code/ansiccode/strings/strstr "some text for test strstr() FUNCTION working on STRING" string x xrezultat będzie zależny od podanych argumentów wywołania programu:
strstr: strptr=strsep(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|te|): strstr: strptr=strsep(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|te|): strptr=|text for test strstr() FUNCTION working on STRING| strstr: strptr=strcasestr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|te|): strstr: strptr=strcasestr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|te|): strptr=|text for test strstr() FUNCTION working on STRING| strstr: strptr=strchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chfirst=| |): strstr: strptr=strchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chfirst=| |): strptr=| text for test strstr() FUNCTION working on STRING| strstr: strptr=strrchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chlast=| |): strstr: strptr=strrchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chlast=| |): strptr=| STRING| strstr: strptr=strsep(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|on|): strstr: strptr=strsep(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|on|): strptr=|on STRING| strstr: strptr=strcasestr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|on|): strstr: strptr=strcasestr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|on|): strptr=|ON working on STRING| strstr: strptr=strchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chfirst=| |): strstr: strptr=strchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chfirst=| |): strptr=| text for test strstr() FUNCTION working on STRING| strstr: strptr=strrchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chlast=| |): strstr: strptr=strrchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chlast=| |): strptr=| STRING| strstr: strptr=strsep(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|some|): strstr: strptr=strsep(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|some|): strptr=|some text for test strstr() FUNCTION working on STRING| strstr: strptr=strcasestr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|some|): strstr: strptr=strcasestr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|some|): strptr=|some text for test strstr() FUNCTION working on STRING| strstr: strptr=strchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chfirst=|t|): strstr: strptr=strchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chfirst=|t|): strptr=|text for test strstr() FUNCTION working on STRING| strstr: strptr=strrchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chlast=|t|): strstr: strptr=strrchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chlast=|t|): strptr=|tr() FUNCTION working on STRING| strstr: strptr=strsep(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|string|): strstr: strptr=strsep(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|string|): strptr=|(null)| strstr: strptr=strcasestr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|string|): strstr: strptr=strcasestr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, argv[2]=|string|): strptr=|STRING| strstr: strptr=strchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chfirst=|x|): strstr: strptr=strchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chfirst=|x|): strptr=|xt for test strstr() FUNCTION working on STRING| strstr: strptr=strrchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chlast=|x|): strstr: strptr=strrchr(argv[1]=|some text for test strstr() FUNCTION working on STRING|, chlast=|x|): strptr=|xt for test strstr() FUNCTION working on STRING|
#top strtok¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strtok()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strtok()
jest następująca:/* Divide S into tokens separated by characters in DELIM. */ extern char *strtok (char *__restrict __s, __const char *__restrict __delim) __THROW __nonnull ((2));
Powiązane:
strpbrk(), strsep(), strtok(),
Opis:
Funkcja strtok()
Argumenty:
char *__restrict __s -
const char *__restrict __delim -
Zwracana wartość:
char * -
Argumenty:
char *__restrict __s -
const char *__restrict __delim -
Zwracana wartość:
char * -
Example:
zawartość pliku
strtok.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ int main(int argc, char **argv) { char *self; char *srcs; char *strptr; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<2) { printf("Usage: %s <some-text>\n", argv[0]); printf("Examples:\n"); printf(" %s \"some text for test strtok() function working on string\" \" \"\n", argv[0]); return 0; } srcs=argv[1]; strptr=strtok(srcs, argv[2]); printf("%s: strptr=strtok(srcs=|%s|, argv[2]=|%s|): strptr=|%s|\n", self, srcs, argv[2], strptr); while (strptr!=NULL) { strptr=strtok(NULL, argv[2]); printf("%s: strptr=strtok(srcs=|%s|, argv[2]=|%s|): strptr=|%s|\n", self, "NULL", argv[2], strptr); } return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/strtokprogram wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/ansiccode/strings/strtok <some-text> Examples: /home/local/code/ansiccode/strings/strtok "some text for test strtok() function working on string" " "
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/ansiccode/strings/strtok "some text for test strtok() function working on string" " "rezultat będzie zależny od podanych argumentów wywołania programu:
strtok: strptr=strtok(srcs=|some|, argv[2]=| |): strptr=|some| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|text| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|for| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|test| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|strtok()| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|function| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|working| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|on| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|string| strtok: strptr=strtok(srcs=|NULL|, argv[2]=| |): strptr=|(null)|
#top strverscmp¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strverscmp()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strverscmp()
jest następująca:/* Compare S1 and S2 as strings holding name & indices/version numbers. */ extern int strverscmp (__const char *__s1, __const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2));
Powiązane:
memcmp(), strcoll(), strncasecmp(), strncmp(), strverscmp(),
Opis:
Funkcja strverscmp()
Argumenty:
const char *__s1 -
const char *__s2 -
Zwracana wartość:
int -
Argumenty:
const char *__s1 -
const char *__s2 -
Zwracana wartość:
int -
#top strxfrm¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
strxfrm()
znajduje się w pliku nagłówkowym string.h
.Deklaracja funkcji
strxfrm()
jest następująca:/* Put a transformation of SRC into no more than N bytes of DEST. */ extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) __THROW __nonnull ((2));
Powiązane:
memccpy(), memcpy(), memmove(), mempcpy(), memset(), strncat(), strncpy(), strndup(),
Opis:
Funkcja strxfrm()
Argumenty:
char *__restrict __dest -
const char *__restrict __src -
size_t __n -
Zwracana wartość:
size_t -
Argumenty:
char *__restrict __dest -
const char *__restrict __src -
size_t __n -
Zwracana wartość:
size_t -
Example:
zawartość pliku
strxfrm.c
SELECT ALL
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
program wyświetli informacje o sposobie uruchamiania programu:
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
rezultat będzie zależny od podanych argumentów wywołania programu:
#top tolower¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
tolower()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
tolower()
jest następująca:/* Return the lowercase version of C. */ extern int tolower (int __c) __THROW;
Powiązane:
tolower(), toupper(),
Opis:
Funkcja tolower()
Argumenty:
int __c -
Zwracana wartość:
int -
Argumenty:
int __c -
Zwracana wartość:
int -
Example:
zawartość pliku
tolower.c
SELECT ALL
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
program wyświetli informacje o sposobie uruchamiania programu:
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
rezultat będzie zależny od podanych argumentów wywołania programu:
#top toupper¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
toupper()
znajduje się w pliku nagłówkowym ctype.h
.Deklaracja funkcji
toupper()
jest następująca:/* Return the uppercase version of C. */ extern int toupper (int __c) __THROW;
Powiązane:
tolower(), toupper(),
Opis:
Funkcja toupper()
Argumenty:
int __c -
Zwracana wartość:
int -
Argumenty:
int __c -
Zwracana wartość:
int -
Example:
zawartość pliku
toupper.c
SELECT ALL
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
program wyświetli informacje o sposobie uruchamiania programu:
jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
rezultat będzie zależny od podanych argumentów wywołania programu:
#top vprintf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
vprintf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
vprintf()
jest następująca:/* Write formatted output to stdout from argument list ARG. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int vprintf (__const char *__restrict __format, _G_va_list __arg);
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja vprintf() analogicznie jak inne funkcje z tej rodziny funkcji jako wynik produkuje zestaw znaków skorelowany z formatem przekazanym w argumencie __format oraz z skorelowanymi z tym formatem argumentami wywołania, które przekazywane są poprzez stdarg (_G_va_list). Funkcja vprintf() zapisuje wynik działania do standowego wyjścia (stdout standard output stream).
Argumenty:
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Example:
zawartość pliku
vprintf.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <stdarg.h> /* for va_list, va_start(), va_end(), */ void vprintf_formatted(const char *format, ...) { va_list args; va_start(args, format); vprintf(format, args); va_end(args); } int main(int argc, char **argv) { char *self; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<1) { printf("Usage: %s\n", argv[0]); return 0; } vprintf_formatted("%s: printf formatted string into stdout, main(int argc, char **argv): argc=%d argv[0]=%s)\n", self, argc, argv[0]); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/vprintfprogram wyświetli informacje o sposobie działania:
vprintf: printf formatted string into stdout, main(int argc, char **argv): argc=1 argv[0]=/home/local/code/ansiccode/strings/vprintf)
#top vscanf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
vscanf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
vscanf()
jest następująca:/* Read formatted input from stdin into argument list ARG. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int vscanf (__const char *__restrict __format, _G_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) __wur;
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja vscanf() podobnie jak inne funkcje z tej rodziny analizuje łańcuch znaków zgodnie z formatem przekazanym w argumencie __format i wynik umieszcza w skorelowanych argumentach wywołania, które przekazywane są poprzez stdarg (_G_va_list). Funkcja scanf() odczytuje łańcuch znaków ze standarowego wejścia (stdin standard input stream).
Argumenty:
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie przeanalizowany wejściowy łańcuch znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie przeanalizowany wejściowy łańcuch znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Example:
zawartość pliku
vscanf.c
SELECT ALL
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
w oczekiwaniu programu na stosowne argumenty należy wpisać:
rezultat będzie zależny od podanych danych po wywołaniu programu:
#top vsnprintf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
vsnprintf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
vsnprintf()
jest następująca:/* Maximum chars of output to write in MAXLEN. */ extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, _G_va_list __arg) __THROW __attribute__ ((__format__ (__printf__, 3, 0)));
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja vsnprintf() analogicznie jak inne funkcje z tej rodziny funkcji jako wynik produkuje zestaw znaków skorelowany z formatem przekazanym w argumencie __format oraz z skorelowanymi z tym formatem argumentami wywołania, które przekazywane są poprzez stdarg (_G_va_list). Funkcja vsnprintf() zapisuje wynik działania do bufora przekazanego jako argument __s, ale nie więcej niż podaną w argumencie wywołania __maxlen ilość znaków, dzięki czemu stosowanie tej funkcji jest bezpieczne.
Argumenty:
char *__restrict __s - wzkaźnik do bufora w którym zostanie zapisany wyprodukowany łańchuch znaków zgodnie z przekazanym formatem w argumencie __format.
size_t __maxlen -
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
char *__restrict __s - wzkaźnik do bufora w którym zostanie zapisany wyprodukowany łańchuch znaków zgodnie z przekazanym formatem w argumencie __format.
size_t __maxlen -
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Example:
zawartość pliku
vsnprintf.c
SELECT ALL
#define _GNU_SOURCE 1 /* for environ defined in unistd.h, to avoid warning implicit declaration of function basename, which defined in string.h */ #include <stdio.h> /* for FILE, va_list, EOF, SEEK_SET, SEEK_CUR, SEEK_END, stdin, stdout, stderr, remove(), rename(), tmpfile(), tmpnam(), tempnam(), fclose(), */ /* fflush(), fopen(), freopen(), fprintf(), printf(), snprintf(), scanf(), sscanf(), fgetc(), getc(), getchar(), fputc(), putc(), putchar(), */ /* fgets(), gets(), fputs(), puts(), fread(), fwrite(), fseek(), ftell(), rewind(), feof(), ferror(), fileno(), popen(), pclose(), */ #include <string.h> /* for memcpy(), memmove(), memset(), memcmp(), memchr(), memrchr(), str[n]cpy(), str[n]cat(), str[n]cmp(), strcoll(), str[n]dup(), strchr(), strrchr(), strstr(), */ /* strtok(), strcasestr(), memmem(), mempcpy(), str[n]len(), strerror(), bcopy(), bzero(), strcasecmp(), strsep(), basename(), */ #include <stdarg.h> /* for va_list, va_start(), va_end(), */ void vsnprintf_formatted(const char *format, ...) { char buffdata[1024]; va_list args; memset(buffdata, 0x00, sizeof(buffdata)); va_start(args, format); vsnprintf(buffdata, sizeof(buffdata), format, args); va_end(args); printf("vsprintf_formatted(const char *format, ...): buffdata=|%s|\n", buffdata); } int main(int argc, char **argv) { char *self; self=strrchr(argv[0], '/'); if (self!=NULL) self++; else self=argv[0]; if (argc<1) { printf("Usage: %s\n", argv[0]); return 0; } vsnprintf_formatted("%s: printf formatted string into buffer, main(int argc, char **argv): argc=%d self=%s)\n", self, argc, argv[0]); return 0; }
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/vsnprintfprogram wyświetli informacje o sposobie działania:
vsprintf_formatted(const char *format, ...): buffdata=|vsnprintf: printf formatted string into buffer, main(int argc, char **argv): argc=1 self=/home/local/code/ansiccode/strings/vsnprintf) |
#top vsprintf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
vsprintf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
vsprintf()
jest następująca:/* Write formatted output to S from argument list ARG. */ extern int vsprintf (char *__restrict __s, __const char *__restrict __format, _G_va_list __arg) __THROW;
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja vsprintf() analogicznie jak inne funkcje z tej rodziny funkcji jako wynik produkuje zestaw znaków skorelowany z formatem przekazanym w argumencie __format oraz z skorelowanymi z tym formatem argumentami wywołania, które przekazywane są poprzez stdarg (_G_va_list). Funkcja vsprintf() podobnie jak funkcja vsnprintf() zapisuje wynik działania do bufora przekazanego jako argument wywołania __s, jednakże nie posiada żadnego ograniczenia dotyczącego ilości znaków, które są zapisywane do bufora. Funkcja vsprintf() uznawana jest za mniej bezpieczną, zalecane jest stosowane bezpieczniejszego zamiennika tej funkcji vsnprintf().
Argumenty:
char *__restrict __s - wzkaźnik do bufora w którym zostanie zapisany wyprodukowany łańchuch znaków zgodnie z przekazanym formatem w argumencie __format.
size_t __maxlen -
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
char *__restrict __s - wzkaźnik do bufora w którym zostanie zapisany wyprodukowany łańchuch znaków zgodnie z przekazanym formatem w argumencie __format.
size_t __maxlen -
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie wyprodukowany zestaw znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
#top vsscanf¶
Documentacja online: pubs.opengroup.org | www.cplusplus.com | pl.wikibooks.org
Deklaracja funkcji
vsscanf()
znajduje się w pliku nagłówkowym stdio.h
.Deklaracja funkcji
vsscanf()
jest następująca:/* Read formatted input from S into argument list ARG. */ extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, _G_va_list __arg) __THROW __attribute__ ((__format__ (__scanf__, 2, 0)));
Powiązane:
printf(), scanf(), snprintf(), sprintf(), sscanf(), vprintf(), vscanf(), vsprintf(), vsnprintf(), vsscanf(),
Opis:
Funkcja vsscanf() podobnie jak inne funkcje z tej rodziny analizuje łańcuch znaków zgodnie z formatem przekazanym w argumencie __format i wynik umieszcza w skorelowanych argumentach wywołania, które przekazywane są poprzez stdarg (_G_va_list). Funkcja vsscanf() odczytuje łańcuch znaków z bufora przekazanego jako argument wywołania __s.
Argumenty:
const char *__restrict __s - wskaźnik do bufora, który zostanie przeanalizowany według formatu podanego w argumencie __format.
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie przeanalizowany wejściowy łańcuch znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Argumenty:
const char *__restrict __s - wskaźnik do bufora, który zostanie przeanalizowany według formatu podanego w argumencie __format.
const char *__restrict __format - łańcuch znaków (wskaźnik do łańcucha znaków) według którego formatu zostanie przeanalizowany wejściowy łańcuch znaków.
_G_va_list __arg - argumenty skorelowane z formatem przekazanym w argumencie __format.
Zwracana wartość:
int -
Example:
zawartość pliku
vsscanf.c
SELECT ALL
program należy skompilować komendą:
make clean all # system Linux make -f Makefile clean all # system Linux make -f Makefile.obsd clean all # system OpenBSD make -f Makefile.fbsd clean all # system FreeBSD make -f Makefile.sol clean all # system Solaris make -f Makefile.beos clean all # system BeOS make -f Makefile.win clean all # system Windows
a następnie uruchomić bez argumentów:
/home/local/code/ansiccode/strings/vsscanfw oczekiwaniu programu na stosowne argumenty należy wpisać:
rezultat będzie zależny od podanych danych po wywołaniu programu:
Zmodyfikowany ostatnio: 2017/06/23 13:43:59 (7 lat temu),
textsize: 351 kB,
htmlsize: 496 kB
Zapraszam do komentowania, zgłaszania sugestii, propozycji, własnych przykładów, ...
Dodaj komentarzKomentarze użytkowników