Linux内核API-字符串操作

Linux的字符串操作API

代码路径:

头文件:
https://github.com/torvalds/linux/blob/master/include/linux/string.h
实现:
https://github.com/torvalds/linux/blob/master/lib/string.c

如果要使用

#include <linux/string.h>

API列表

类别 函数定义 说明
依赖
#define tolower(c) __tolower(c)
 
#define toupper(c) __toupper(c)
 
#define isspace(c)	((__ismask(c)&(_S)) != 0)
 
内存操作
void *memset(void *s, int c, size_t count)
 
void *memcpy(void *dest, const void *src, size_t count)
 
int memcmp(const void *cs, const void *ct, size_t count)
 
void *memmove(void *dest, const void *src, size_t count)
 
void *memscan(void *addr, int c, size_t size)
 
void *memchr(const void *s, int c, size_t n)
 
void *memchr_inv(const void *start, int c, size_t bytes)
 
void memzero_explicit(void *s, size_t count)
 
复制
char *strcpy(char *dest, const char *src)
 
char *strncpy(char *dest, const char *src, size_t count)
将 src 中 count 个字符复制到 dest
size_t strlcpy(char *dest, const char *src, size_t size)
将 src 中 size-1 个字符复制到 dest,在最后面补 '\0'
比较
int strcmp(const char *cs, const char *ct)
 
int strncmp(const char *cs, const char *ct, size_t count)
 
int strnicmp(const char *s1, const char *s2, size_t len)
 
int strcasecmp(const char *s1, const char *s2)
 
int strncasecmp(const char *s1, const char *s2, size_t n)
 
连接
char *strcat(char *dest, const char *src)
 
char *strncat(char *dest, const char *src, size_t count)
 
size_t strlcat(char *dest, const char *src, size_t count)
 
查找字符
char *strchr(const char *s, int c)
 
char *strnchr(const char *s, size_t count, int c)
 
char *strrchr(const char *s, int c)
 
查找字符串
char *strstr(const char *s1, const char *s2)
 
char *strnstr(const char *s1, const char *s2, size_t len)
 
 
size_t strspn(const char *s, const char *accept)
 
 
size_t strcspn(const char *s, const char *reject)
 
去除空白字符
char *strim(char *s)
去除字符串 s 首尾的空白字符
计算长度
size_t strlen(const char *s)
 计算字符串 s 的长度,从首地址开始进行查找,直到遇到 '\0' ,是可能溢出的。
size_t strnlen(const char *s, size_t count)
在 count 范围内,计算字符串 s 的长度,是对strlen的一种溢出保护。
其他
char *skip_spaces(const char *str)
 
 
char *strpbrk(const char *cs, const char *ct)
 
 
char *strsep(char **s, const char *ct)
 
 
int strtobool(const char *s, bool *res)
 
 
bool sysfs_streq(const char *s1, const char *s2)
 
posted @ 2024-01-16 11:23  秦舒云  阅读(58)  评论(0编辑  收藏  举报