Nut/OS  5.0.5
API Reference
Strings

C Standard String Library. More...

Collaboration diagram for Strings:

Defines

#define wsize   sizeof(word)
#define wmask   (wsize - 1)

Typedefs

typedef long word
 Copy a string.
typedef unsigned char uint8_t

Functions

char * strdup (const char *str)
 Create a copy of a string.
void * memchr (const void *s, int c, size_t n)
 Locate byte in a memory region.
int memcmp (const void *s1, const void *s2, size_t n)
 Compare memory regions.
void * memcpy (void *dst0, const void *src0, size_t length)
void * memset (void *dst, int c, size_t n)
 Fill memory region with a specific byte value.
char * strcat (char *dst, const char *src)
 Concatenate two strings.
char * strchr (const char *p, int ch)
 Locate the first occurrence of a character in a string.
int strcmp (const char *s1, const char *s2)
 Compare two strings.
char * strcpy (char *dst, const char *src)
 Copy a string.
int stricmp (const char *s1, const char *s2)
 Compare two strings, ignoring case.
int strnicmp (const char *s1, const char *s2, size_t n)
 Compare two strings up to a given number of characters and ignoring case.
size_t strlen (const char *str)
 Compute the length of a NUL terminated string.
char * strncat (char *dst, const char *src, size_t n)
 Concatenate two strings up to a given number of characters.
int strncmp (const char *s1, const char *s2, size_t n)
 Compare two strings up to a given number of characters.
char * strncpy (char *dst, const char *src, size_t n)
 Copy a string up to a given number of characters.
char * strrchr (const char *p, int ch)
 Locate the last occurrence of a character in a NUL terminated string.
char * strstr (const char *s, const char *find)
 Locate a substring in a string.
char * strtok (char *s, const char *delim)
 Isolate sequential tokens in a NUL terminated string.
char * strtok_r (char *s, const char *delim, char **last)
 Isolate sequential tokens in a NUL terminated string.

Detailed Description

C Standard String Library.


Define Documentation

#define wsize   sizeof(word)

Referenced by memcpy(), and SpiAt45dConfigWrite().

#define wmask   (wsize - 1)

Referenced by memcpy().


Typedef Documentation

typedef long word

Copy a string.

Copies a source string including the terminating zero character to a destination string.

Note:
The function does not perform any overflow checking.
Parameters:
dstPointer to the destination string.
srcPointer to the source string.
Returns:
The original destination pointer.
typedef unsigned char uint8_t

Function Documentation

char* strdup ( const char *  str)

Create a copy of a string.

Allocates sufficient memory from heap for a copy of the string does the copy.

Parameters:
strPointer to the string to copy.
Returns:
A pointer to the new string or NULL if allocating memory failed.

References malloc(), memcpy(), NULL, and strlen().

Referenced by EditHistoryInsert(), EditHistorySet(), emulation_options_parse(), EnvRegisterVariable(), HttpArgParseNext(), HttpArgReadNext(), HttpAuthBasicValidate(), HttpParseHeader(), HttpParseMultipartHeader(), HttpRegisterAuthBasic(), HttpRegisterCgiFunction(), HttpRegisterRedir(), HttpRegisterRootPath(), HttpSessionInfo(), ISC_LIST(), LiLiCreateStringItemCopy(), NutChat(), NutDnsConfig2(), NutFtpProcessCwd(), NutFtpRenamePrepare(), NutHttpProcessRequest(), NutRegisterAuth(), NutRegisterCgi(), NutRegisterCgiBinPath(), NutRegisterFtpUser(), putenv(), setenv(), StreamInfo(), UxmlNodeAddAttrib(), and UxmlParseStream().

Here is the call graph for this function:

void* memchr ( const void *  s,
int  c,
size_t  n 
)

Locate byte in a memory region.

This function locates the first occurrence of a byte in a memory region.

Parameters:
sPointer to the start of the memory region.
cThe byte to search for, converted to an unsigned character.
nNumber of bytes to search.
Returns:
A pointer to the byte located, or NULL if no such byte exists.

Referenced by _putf().

int memcmp ( const void *  s1,
const void *  s2,
size_t  n 
)

Compare memory regions.

Both memory regions are assumed to be of equal length.

Parameters:
s1Pointer to first memory region.
s2Pointer to second memory region.
nNumber of bytes to compare.
Returns:
Zero if the two regions are identical, otherwise returns the difference between the first two differing bytes.

Referenced by At45dbParamWrite(), At49bvParamWrite(), At91EfcParamWrite(), Avr32FlashcParamWrite(), FLASH_EraseAllPages(), HttpSsiExecHandler(), HttpSsiIncludeHandler(), Lpc17xxIapParamWrite(), NutLoadConfig(), PhatDirRemove(), SnmpOidEquals(), SpiAt45dConfigWrite(), and StreamReadUntilString().

void* memcpy ( void *  dst0,
const void *  src0,
size_t  length 
)
Examples:
caltime/caltime.c, and editconf/editconf.c.

References TLOOP, TLOOP1, wmask, and wsize.

Referenced by AhdlcRx(), AsnBitStringBuild(), AsnBitStringParse(), AsnOctetStringBuild(), AsnOctetStringParse(), At45dbParamRead(), At45dbParamWrite(), At49bvParamWrite(), At49bvSectorRead(), At91EfcParamWrite(), At91EfcSectorRead(), AtCanSetAccCode(), AtCanSetAccMask(), Avr32FlashcParamWrite(), Avr32FlashcSectorRead(), cs8900Init(), CSNicInit(), DiscoveryResponder(), DS1307RamWrite(), EditHistoryGet(), FATFileRead(), FeederThread(), FLASH_EraseAllPages(), GetParentPath(), HttpArgParseNext(), HttpSsiEchoHandler(), HttpSsiExecHandler(), LcpTxProtRej(), Lpc17xxIapParamWrite(), Lpc17xxIapSectorRead(), main(), Mma745xInit(), NicInit(), NutArpAllocNetBuf(), NutArpCacheUpdate(), NutArpOutput(), NutDhcpIfConfig(), NutDiscoveryAnnTele(), NutDiscoveryAppConf(), NutEtherOutput(), NutHeapRootRealloc(), NutIcmpResponse(), NutIpRouteList(), NutMD5Final(), NutMD5Update(), NutNetBufClonePart(), NutNetBufCollect(), NutNetIfConfig2(), NutNetIfSetup(), NutNetLoadConfig(), NutSaveConfig(), NutSmtpLogin(), NutTcpDeviceWrite(), NutTcpOutput(), NutTcpReceive(), NutThreadCreate(), NutUdpReceiveFrom(), NutUdpSendTo(), PapTxAuthReq(), PerCiRead(), PerCiWrite(), PhatDirEntryUpdate(), PhatFileOpen(), PhatFileRead(), PhatFileWrite(), PhatVolMount(), RawFsFileRead(), RawFsFileWrite(), resolve(), SJASetAccCode(), SJASetAccMask(), SnmpMibFind(), SnmpMibRegister(), SnmpPduAddVariable(), SnmpPduCreate(), SnmpSessionOpen(), SpiAt45dConfigRead(), SpiAt45dConfigWrite(), strdup(), StreamClientAccept(), StreamReadUntilString(), Tlv320DacWrite(), UxmlNodeCreate(), VsCodecRead(), VsCodecWrite(), wlandrv_IOCTL(), wlandrv_PutPacket(), X12EepromWrite(), XTeaCryptStr(), and XTeaDecryptStr().

char* strcat ( char *  dst,
const char *  src 
)

Concatenate two strings.

Append a copy of a NUL terminated string to the end of another NUL terminated string.

Note:
The function does not perform any overflow checking.
Parameters:
dstPointer to the destination string.
srcPointer to the source string.
Returns:
The original destination pointer.

Referenced by AllocConcatStrings(), CreateFilePath(), HttpSendRedirection(), MibRegisterSysVars(), NutFtpTransferDirectoryOptions(), and s_vputs().

char* strchr ( const char *  p,
int  ch 
)

Locate the first occurrence of a character in a string.

The terminating NUL character is considered part of the string.

Parameters:
pPointer to the string.
chCharacter to locate.
Returns:
A pointer to the located character or NULL if the character does not appear in the string.
Examples:
portdio/portdio.c, tcps/tcps.c, and uart/uart.c.

References NULL.

Referenced by HttpArgParseNext(), HttpArgReadNext(), HttpArgValueSub(), HttpParseHeader(), HttpSsiExecHandler(), main(), MakePhatName(), NutFtpProcessRequest(), NutHttpProcessRequest(), NutRegisterFtpRoot(), NutSmtpReceiveResponse(), ProcessRequests(), putenv(), and StreamReadUntilChars().

int strcmp ( const char *  s1,
const char *  s2 
)

Compare two strings.

The strings are compared lexicographically.

Parameters:
s1Pointer to the first string.
s2Pointer to the second string.
Returns:
An integer greater than, equal to, or less than 0, according to whether the first string is greater than, equal to, or less than the second string.
Examples:
httpd/httpserv.c.

Referenced by EditHistoryInsert(), emulation_options_parse(), findenv(), GetThreadByName(), HttpRegisterAuthBasic(), HttpSsiExecHandler(), LiLiCompareStringItems(), MmCardMount(), NutChatExpect(), NutDeviceLookup(), NutFtpProcessCwd(), NutFtpProcessPass(), NutFtpProcessUser(), NutHttpGetParameter(), NutNetLoadConfig(), NutRegisterCgi(), NutWinsNameQuery(), rename(), RfcTimeParse(), setenv(), SnmpCommunityCreate(), SnmpCommunityFind(), SnmpViewCreate(), SnmpViewFind(), SpiMmcMount(), and VsCodecOpen().

char* strcpy ( char *  dst,
const char *  src 
)

Copy a string.

Copies a source string including the terminating zero character to a destination string.

Note:
The function does not perform any overflow checking.
Parameters:
dstPointer to the destination string.
srcPointer to the source string.
Returns:
The original destination pointer.
Examples:
editconf/editconf.c, and inetq/inetq.c.

Referenced by _putf(), AllocConcatStringLen(), AllocConcatStrings(), AsixInit(), basename(), CreateFilePath(), CreateFullPathName(), dirname(), findenv(), main(), MibRegisterIfVars(), MibRegisterSysVars(), NutFtpTransferDirectoryOptions(), NutLoadConfig(), NutRegisterFtpRoot(), NutRegisterHttpRoot(), opendir(), openlog(), PhatDirRead(), SnmpCommunityCreate(), SnmpViewCreate(), and syslog_header().

int stricmp ( const char *  s1,
const char *  s2 
)

Compare two strings, ignoring case.

The strings are compared lexicographically. The comparison is done using unsigned characters,

Parameters:
s1Pointer to the first string.
s2Pointer to the second string.
Returns:
An integer greater than, equal to, or less than 0, according to whether the first string is greater than, equal to, or less than the second string after translation of each corresponding character to lower-case.
int strnicmp ( const char *  s1,
const char *  s2,
size_t  n 
)

Compare two strings up to a given number of characters and ignoring case.

The strings are compared lexicographically. The comparison is done using unsigned characters,

Parameters:
s1Pointer to the first string.
s2Pointer to the second string.
nNumber of bytes to compare.
Returns:
An integer greater than, equal to, or less than 0, according to whether the first string is greater than, equal to, or less than the second string after translation of each corresponding character to lower-case.
char* strncat ( char *  dst,
const char *  src,
size_t  n 
)

Concatenate two strings up to a given number of characters.

Append a copy of a NUL terminated string to the end of another NUL terminated string. Appends a copy of the source string including the terminating NUL character, if its length is lower than the given number of characters. Otherwise the destination string is left unterminated.

Parameters:
dstPointer to the destination string.
srcPointer to the source string.
nNumber of bytes appended at most.
Returns:
The original destination pointer.
int strncmp ( const char *  s1,
const char *  s2,
size_t  n 
)

Compare two strings up to a given number of characters.

The strings are compared lexicographically. The comparison is done using unsigned characters,

Parameters:
s1Pointer to the first string.
s2Pointer to the second string.
nNumber of bytes to compare.
Returns:
An integer greater than, equal to, or less than 0, according to whether the first string is greater than, equal to, or less than the second string after translation of each corresponding character to lower-case.
Examples:
portdio/portdio.c, and tcps/tcps.c.

Referenced by emulation_options_parse(), HttpParseMultipartHeader(), NutHttpAuthValidate(), NutSmtpLogin(), ProcessRequests(), and strstr().

char* strncpy ( char *  dst,
const char *  src,
size_t  n 
)

Copy a string up to a given number of characters.

Copies a source string including the terminating NUL character, if its length is lower than the given number of characters. Otherwise the destination string is left unterminated.

Parameters:
dstPointer to the destination string.
srcPointer to the source string.
nMaximum number of characters to copy.
Returns:
The original destination pointer.

Referenced by AllocConcatStringLen(), dirname(), ISC_LIST(), and NutDiscoveryAppConf().

char* strrchr ( const char *  p,
int  ch 
)

Locate the last occurrence of a character in a NUL terminated string.

The terminating NUL character is considered part of the string.

Parameters:
pPointer to the string.
chCharacter to locate.
Returns:
A pointer to the located character or NULL if the character does not appear in the string.

References NULL.

Referenced by GetMediaTypeEntry(), GetParentPath(), HttpSessionInfo(), NutHttpAuthValidate(), and NutHttpSendError().

char* strstr ( const char *  s,
const char *  find 
)

Locate a substring in a string.

Finds the first occurrence of a NUL terminated string in another NUL terminated string.

Parameters:
sPointer to the string to be searched.
findPointer to the string to look for.
Returns:
A pointer to the first occurrence of the substring. If the string to search is an empty string, then the original pointer is returned. If the substring does not occur in the string to be searched, then a null pointer is returned.

References NULL, strlen(), and strncmp().

Referenced by HttpSsiProcessFile(), NutSmtpLogin(), and SSDPTask().

Here is the call graph for this function:

char* strtok ( char *  s,
const char *  delim 
)

Isolate sequential tokens in a NUL terminated string.

The tokens are separated in the string by at least one of the characters in the given separator string.

The first time this function is called, the string should be specified. Subsequent calls, wishing to obtain further tokens from the same string, should pass a null pointer instead.

The separator string must be supplied each time, and may change between calls.

Parameters:
sPointer to the string to separate.
delimPointer to the separator string.
Returns:
A pointer to the beginning of each subsequent token in the string, after replacing the separator character itself with a zero character. When no more tokens remain, a null pointer is returned.

References strtok_r().

Here is the call graph for this function:

char* strtok_r ( char *  s,
const char *  delim,
char **  last 
)

Isolate sequential tokens in a NUL terminated string.

Similar to strtok(), but takes an explicit context argument and thus is reentrant.

Parameters:
sPointer to the string to separate.
delimPointer to the separator string.
lastUsed to store the current search context.
Returns:
A pointer to the beginning of each subsequent token in the string, after replacing the separator character itself with a zero character. When no more tokens remain, a null pointer is returned.

References NULL.

Referenced by strtok().