首页 > 系统相关 >Linux内核API-字符串操作

Linux内核API-字符串操作

时间:2024-01-16 11:36:31浏览次数:27  
标签:count const int void char API 内核 Linux size

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)
 

标签:count,const,int,void,char,API,内核,Linux,size
From: https://www.cnblogs.com/riveruns/p/17967268

相关文章

  • Linux篇---ftp服务器的搭建
    一、前述企业中linux搭建ftp服务器还是很实用的,所以本文针对centoos7和centoos6搭建服务器教程做个总结。二、具体1、显示如下图则表示已安装vsftp软件。如果未显示则需要安装vsftpd软件。如果没有则通过yarm源进行安装yuminstall-yvsftpd2、安装完成之后进入到ftp的......
  • linux or macos 将当前脚本文件以某个方式执行:#! /usr/bin/env
    #!/usr/bin/env 在linux的一些bash的脚本,需在开头一行指定脚本的解释程序,如: #!/usr/bin/envpython但是也有直接写绝对路径的#!/usr/bin/python这个的虽然可以,但是如果我们将脚本换了一台设备,可能它的python并非安装在此处,则需要更换相反:#!/usr/bin/envpython,它是从环境......
  • APIO
    因为原图边长均为1,不太好讨论,我们不妨将边长认为是可变的,则形如下图    如果只允许加1条边的话,则加上1到2这条边,边长认为是1.是走过的路径等于=2*总边长-节约的路径长度+1但如果K=2时。我们要如何处理刚才找出来的路径。如果仍保持不变,则找出来的直径仍会是从前那条......
  • 完成端口API整理
    1.BOOLGetQueuedCompletionStatus(HANDLECompletionPort,LPDWORDlpNumberOfBytesTransferred,PULONG_PTRlpCompletionKey,LPOVERLAPPED*lpOverlapped,DWORDdwMilliseconds);CompletionPort:完成端口的句柄,用于与I/O操作相关联......
  • 2024年了,玩Linux,配置环境变量,绕不开这6种方法!
    Linux环境变量配置在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。下面所有例子的环境说明如下:系统:Ubuntu14.0用户名:uusama需要配置MySQL环境变量路径:/home/uusama/mysql/binLinux读取环境变量读取环境变量的方法:export命令显示当前系统定义的所......
  • Linux CentOS 8 安装FTP服务和lftp服务
    一、ftp服务1、安装ftp服务[spj1@localhost~]$sudoyuminstallvsftpd//安装ffp服务 2、启动ftp服务[spj1@localhost~]$systemctlstartvsftpd//启动ftp服务====AUTHENTICATINGFORorg.freedesktop.systemd1.manage-units====启动“vsftpd.service”需要认证......
  • PHP开发API接口签名生成及验证
    开发过程中,我们经常会与接口打交道,有的时候是调取别人网站的接口,有的时候是为他人提供自己网站的接口,但是在这调取的过程中都离不开签名验证。我们在设计签名验证的时候,请注意要满足以下几点:可变性:每次的签名必须是不一样的。时效性:每次请求的时效,过期作废等。唯一性:每次的签......
  • Linux 命令总结
    基本命令 uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件Ispci查看PCI设备-v:查看详细信息Isusb查看USB设备-v:查看详细信息Ismod查看加载的模块(驱动)(SMBIOS/DMI)hdparm-i/de......
  • FastAPI学习-29 log_config 设置 logger 日志格式
    前言FastAPI服务是通过uvicorn来提供的,日志都是uvicorn里配置的。官方文档地址:https://www.uvicorn.org/settings/#logginguvicorn的logging日志我们可以通过uvicorn.run()方式启动服务uvicorn.run("example:app",port=5000,reload=True,access_log=False)于......
  • JavaSE(12) - 常用API(下)
    JavaSE(12)-常用API(下)JDK7以前的时间相关类Date类如何创建日期对象Datedate=newDate();//空参构造创建的对象,默认表示系统当前时间Datedate=newDate(指定毫秒值);//有参构造创建的对象,表示指定时间如何修改时间对象中的毫秒值setTime(毫秒值);如......