#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <rte_common.h>
#include <rte_compat.h>
Go to the source code of this file.
|
| int | rte_strsplit (char *string, int stringlen, char **tokens, int maxtokens, char delim) |
| |
| ssize_t | rte_strscpy (char *dst, const char *src, size_t dsize) |
| |
| static __rte_experimental const char * | rte_str_skip_leading_spaces (const char *src) |
| |
| __rte_experimental size_t | rte_basename (const char *path, char *buf, size_t buflen) |
| |
String-related functions as replacement for libc equivalents
Definition in file rte_string_fns.h.
◆ rte_strsplit()
| int rte_strsplit |
( |
char * |
string, |
|
|
int |
stringlen, |
|
|
char ** |
tokens, |
|
|
int |
maxtokens, |
|
|
char |
delim |
|
) |
| |
Takes string "string" parameter and splits it at character "delim" up to maxtokens-1 times - to give "maxtokens" resulting tokens. Like strtok or strsep functions, this modifies its input string, by replacing instances of "delim" with '\0'. All resultant tokens are returned in the "tokens" array which must have enough entries to hold "maxtokens".
- Parameters
-
| string | The input string to be split into tokens |
| stringlen | The max length of the input buffer |
| tokens | The array to hold the pointers to the tokens in the string |
| maxtokens | The number of elements in the tokens array. At most, maxtokens-1 splits of the string will be done. |
| delim | The character on which the split of the data will be done |
- Returns
- The number of tokens in the tokens array.
- Examples
- examples/ipsec-secgw/ipsec-secgw.c, examples/l2fwd-event/main.c, examples/l2fwd-macsec/main.c, examples/l2fwd/main.c, examples/l3fwd-graph/main.c, examples/l3fwd-power/main.c, examples/l3fwd-power/perf_core.c, examples/l3fwd/main.c, examples/qos_sched/args.c, examples/qos_sched/cfg_file.c, examples/vhost/main.c, and examples/vhost_crypto/main.c.
◆ rte_strscpy()
| ssize_t rte_strscpy |
( |
char * |
dst, |
|
|
const char * |
src, |
|
|
size_t |
dsize |
|
) |
| |
Copy string src to buffer dst of size dsize. At most dsize-1 chars will be copied. Always NUL-terminates, unless (dsize == 0).
- Parameters
-
| dst | The destination string. |
| src | The input string to be copied. |
| dsize | Length in bytes of the destination buffer. |
- Returns
- The number of bytes copied (terminating NUL-byte excluded) on success. -E2BIG if the destination buffer is too small. rte_errno is set.
- Examples
- examples/fips_validation/fips_validation.c, and examples/vdpa/main.c.
◆ rte_str_skip_leading_spaces()
| static __rte_experimental const char * rte_str_skip_leading_spaces |
( |
const char * |
src | ) |
|
|
inlinestatic |
◆ rte_basename()
| __rte_experimental size_t rte_basename |
( |
const char * |
path, |
|
|
char * |
buf, |
|
|
size_t |
buflen |
|
) |
| |
- Warning
- EXPERIMENTAL: this API may change without prior notice.
Provides the final component of a path, similar to POSIX basename function.
This API provides the similar behaviour on all platforms, Linux, BSD, Windows, hiding the implementation differences.
- It does not modify the input path.
- The output buffer is passed as an argument, and the result is copied into it.
- Expected output is the last component of the path, or the path itself if it does not contain a directory separator.
- If the final component is too long to fit in the output buffer, it will be truncated.
- For empty or NULL input paths, output buffer will contain the string ".".
- Supports up to PATH_MAX (BSD/Linux) or _MAX_PATH (Windows) characters in the input path.
- Parameters
-
| path | The input path string. Not modified by this function. |
| buf | The buffer to hold the resultant basename. Must be large enough to hold the result, otherwise basename will be truncated. |
| buflen | The size of the buffer in bytes. |
- Returns
- The number of bytes that were written to buf (excluding the terminating '\0'). If the return value is >= buflen, truncation occurred. Return (size_t)-1 on error (Windows only)