string.h
来自「参照MINIX3写的操作系统 用GCC+NASM+BOCHS开发」· C头文件 代码 · 共 435 行 · 第 1/2 页
H
435 行
#endif#ifdef __USE_GNU/* 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));/* 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));extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __THROW __nonnull ((1, 2));#endif__BEGIN_NAMESPACE_STD/* Return the length of S. */extern size_t strlen (__const char *__s) __THROW __attribute_pure__ __nonnull ((1));__END_NAMESPACE_STD#ifdef __USE_GNU/* 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));#endif__BEGIN_NAMESPACE_STD/* Return a string describing the meaning of the `errno' code in ERRNUM. */extern char *strerror (int __errnum) __THROW;__END_NAMESPACE_STD#if defined __USE_XOPEN2K || defined __USE_MISC/* Reentrant version of `strerror'. There are 2 flavors of `strerror_r', GNU which returns the string and may or may not use the supplied temporary buffer and POSIX one which fills the string into the buffer. To use the POSIX version, -D_XOPEN_SOURCE=600 or -D_POSIX_C_SOURCE=200112L without -D_GNU_SOURCE is needed, otherwise the GNU version is preferred. */# if defined __USE_XOPEN2K && !defined __USE_GNU/* Fill BUF with a string describing the meaning of the `errno' code in ERRNUM. */# ifdef __REDIRECT_NTHextern int __REDIRECT_NTH (strerror_r, (int __errnum, char *__buf, size_t __buflen), __xpg_strerror_r) __nonnull ((2));# elseextern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen) __THROW __nonnull ((2));# define strerror_r __xpg_strerror_r# endif# else/* If a temporary buffer is required, at most BUFLEN bytes of BUF will be used. */extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) __THROW __nonnull ((2));# endif#endif#ifdef __USE_GNU/* Translate error number to string according to the locale L. */extern char *strerror_l (int __errnum, __locale_t __l) __THROW;#endif/* We define this function always since `bzero' is sometimes needed when the namespace rules does not allow this. */extern void __bzero (void *__s, size_t __n) __THROW __nonnull ((1));#ifdef __USE_BSD/* Copy N bytes of SRC to DEST (like memmove, but args reversed). */extern void bcopy (__const void *__src, void *__dest, size_t __n) __THROW __nonnull ((1, 2));/* Set N bytes of S to 0. */extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1));/* Compare N bytes of S1 and S2 (same as memcmp). */extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2));/* Find the first occurrence of C in S (same as strchr). */extern char *index (__const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1));/* Find the last occurrence of C in S (same as strrchr). */extern char *rindex (__const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1));/* Return the position of the first bit set in I, or 0 if none are set. The least-significant bit is position 1, the most-significant 32. */extern int ffs (int __i) __THROW __attribute__ ((__const__));/* The following two functions are non-standard but necessary for non-32 bit platforms. */# ifdef __USE_GNUextern int ffsl (long int __l) __THROW __attribute__ ((__const__));# ifdef __GNUC____extension__ extern int ffsll (long long int __ll) __THROW __attribute__ ((__const__));# endif# endif/* Compare S1 and S2, ignoring case. */extern int strcasecmp (__const char *__s1, __const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2));/* 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));#endif /* Use BSD. */#ifdef __USE_GNU/* Again versions of a few functions which use the given locale instead of the global one. */extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) __THROW __attribute_pure__ __nonnull ((1, 2, 3));extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) __THROW __attribute_pure__ __nonnull ((1, 2, 4));#endif#ifdef __USE_BSD/* 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));#endif#ifdef __USE_GNU/* 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));/* Return a string describing the meaning of the signal number in SIG. */extern char *strsignal (int __sig) __THROW;/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) __THROW __nonnull ((1, 2));extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) __THROW __nonnull ((1, 2));/* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2));extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2));/* Sautee STRING briskly. */extern char *strfry (char *__string) __THROW __nonnull ((1));/* Frobnicate N bytes of S. */extern void *memfrob (void *__s, size_t __n) __THROW __nonnull ((1));# ifndef basename/* 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));# endif#endif#if defined __GNUC__ && __GNUC__ >= 2# if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ \ && !defined __NO_INLINE__ && !defined __cplusplus/* When using GNU CC we provide some optimized versions of selected functions from this header. There are two kinds of optimizations: - machine-dependent optimizations, most probably using inline assembler code; these might be quite expensive since the code size can increase significantly. These optimizations are not used unless the symbol __USE_STRING_INLINES is defined before including this header. - machine-independent optimizations which do not increase the code size significantly and which optimize mainly situations where one or more arguments are compile-time constants. These optimizations are used always when the compiler is taught to optimize. One can inhibit all optimizations by defining __NO_STRING_INLINES. *//* Get the machine-dependent optimizations (if any). */# include <bits/string.h>/* These are generic optimizations which do not add too much inline code. */# include <bits/string2.h># endif# if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus/* Functions with security checks. */# include <bits/string3.h># endif#endif__END_DECLS#endif /* string.h */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?