string.h(3)
π string.h π
okay bestie, so this one's a big deal β it's the string.h header from avr-libc, the AVR C library, and honestly? it's giving β¨ the entire alphabet of string and memory manipulation β¨. if you're writing C for an AVR microcontroller and you need to poke at memory or wrangle text, you're gonna be living in this header. no cap. π
It's a header file, so like β you don't "run" it, you #include it and suddenly a whole roster of functions is at your fingertips. iconic behavior fr fr. π¦
π NAME π
string.h β that's it, that's the name, that's the whole vibe. short, sweet, main character energy. π
πΈ SYNOPSIS πΈ
π§ Macros
#define _FFS(x)
π Functions
okay so here's the FULL lineup, every single one, in order, exactly as declared. don't skip a single icon:
int ffs (int __val)
int ffsl (long __val)
__extension__ int ffsll (long long __val)
void * memccpy (void *, const void *, int, size_t)
void * memchr (const void *, int, size_t) __ATTR_PURE__
int memcmp (const void *, const void *, size_t) __ATTR_PURE__
void * memcpy (void *, const void *, size_t)
void * memmem (const void *, size_t, const void *, size_t) __ATTR_PURE__
void * memmove (void *, const void *, size_t)
void * memrchr (const void *, int, size_t) __ATTR_PURE__
void * memset (void *, int, size_t)
char * strcat (char *, const char *)
char * strchr (const char *, int) __ATTR_PURE__
char * strchrnul (const char *, int) __ATTR_PURE__
int strcmp (const char *, const char *) __ATTR_PURE__
char * strcpy (char *, const char *)
int strcasecmp (const char *, const char *) __ATTR_PURE__
char * strcasestr (const char *, const char *) __ATTR_PURE__
size_t strcspn (const char *__s, const char *__reject) __ATTR_PURE__
char * strdup (const char *s1)
size_t strlcat (char *, const char *, size_t)
size_t strlcpy (char *, const char *, size_t)
size_t strlen (const char *) __ATTR_PURE__
char * strlwr (char *)
char * strncat (char *, const char *, size_t)
int strncmp (const char *, const char *, size_t) __ATTR_PURE__
char * strncpy (char *, const char *, size_t)
int strncasecmp (const char *, const char *, size_t) __ATTR_PURE__
size_t strnlen (const char *, size_t) __ATTR_PURE__
char * strpbrk (const char *__s, const char *__accept) __ATTR_PURE__
char * strrchr (const char *, int) __ATTR_PURE__
char * strrev (char *)
char * strsep (char **, const char *)
size_t strspn (const char *__s, const char *__accept) __ATTR_PURE__
char * strstr (const char *, const char *) __ATTR_PURE__
char * strtok (char *, const char *)
char * strtok_r (char *, const char *, char **)
char * strupr (char *)
π not me pointing out that a bunch of these have __ATTR_PURE__ tacked on the end β that's part of the declaration, bestie, so it stays. copy it exactly or the compiler will be in your mentions.
and yes, ffsll literally starts with __extension__. that's not a typo, that's not me being quirky, that's the actual signature. leave it. π
π«Ά Author π«Ά
Generated automatically by Doxygen for avr-libc from the source code.
yeah, nobody hand-wrote this one β Doxygen spat it out from the avr-libc source, and honestly? it ate. π€β¨
and that's the whole page, bestie!! Version 2.1.0, dated Sat Jan 29 2022 β so go forth, #include <string.h>, and be the main character of your own firmware. mwah. π
ππ
π¦ where this page comes from
- fedora 43: avr-libc 2.2.1-3.fc43 Β· BSD-3-Clause
- fedora 44: avr-libc 2.2.1-5.fc44 Β· BSD-3-Clause
- opensuse-leap 16.0: avr-libc 2.1.0-bp160.1.33 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms