string.h(3)

πŸ“¦
version 2.2.1 Β· 2 versions
, in fedora 43, fedora 44, opensuse-leap 16.0

πŸŽ€ 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