CONTENT
  • CHANGES
Szukaj
counter

#top Strings


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.

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/basename
program 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 basename
rezultat 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.

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/dirname
program 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 dirname
rezultat 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).

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/getchar
w oczekiwaniu programu na stosowne argumenty należy wpisać (oraz nacisnąc klawisz Enter wpisany znak został odczytany):
a
rezultat 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,

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/gets
w oczekiwaniu programu na stosowne argumenty należy wpisać (oraz nacisnąc klawisz Enter wpisany ciąg znaków został odczytany):
dowolny ciąg znaków
rezultat 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.



#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 -



#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 -

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/isalpha
program 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 -



#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 -



#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 -



#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 -



#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 -



#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 -



#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 -



#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 (\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 -



#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 -



#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 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.



#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.



#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.

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/memcmp
program 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.

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/memcpy
program 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.

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/memmem
program 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.



#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).



#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.



#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:
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.

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/printf
program 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 -

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/putchar
program 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 -

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/puts
program 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 * -

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 * -



#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 -

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/snprintf
w oczekiwaniu programu na stosowne argumenty należy wpisać:
1
2.5
123asd
rezultat 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 -

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/snprintf
program 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 -



#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 -

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/sscanf
w oczekiwaniu programu na stosowne argumenty należy wpisać:
1
2.5
a
@
123asd
rezultat 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 * -



#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 * -



#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.



#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.



#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 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/strcoll
program 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 textd
rezultat 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 textd
rezultat 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 textd
rezultat 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 * -



#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



#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.



#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.

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/strerror
program 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 5
rezultat 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 -
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 -



#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 -



#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 * -

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/strncpy
program 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 0123456789
rezultat 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.

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/strncmp
program 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.15
rezultat 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 * -

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/strncpy
program 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 012345678901234567890123456789
rezultat 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:
Funkcja strndup()

Argumenty:
const char *__string -
size_t __n -

Zwracana wartość:
char * -

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/strncpy
program 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 chunk
rezultat 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:
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/strnlen
program 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 1234567890012345678901234567890123456789
rezultat 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 * -

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/strpbrk	
program 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 * -



#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 * -

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/strsep
program 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.

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/strsignal
program 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 5
rezultat 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:
Funkcja strspn()

Argumenty:
const char *__s -
const char *__accept -

Zwracana wartość:
size_t -

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/strspn
program 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 1234567890
rezultat 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 * -

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/strstr
program 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 x
rezultat 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 * -

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/strtok
program 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 -



#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 -

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 -

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 -

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 -

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/vprintf
program 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 -

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 -

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/vsnprintf
program 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 -



#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 -

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/vsscanf
w 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 (6 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