文档章节

#include <linux/string.h>

hyhlinux
 hyhlinux
发布于 2015/12/29 11:49
字数 568
阅读 30
收藏 2

Linux内核不能使用用户空间的函数,不过内核里还是有很多同名字符串处理函数可用,基本没有障碍。

  #include <linux/string.h>即可

  当然,有的函数还是体系结构优化的,例如有的powerpc处理器含有正则表达式硬件加速器。对于优化处理的函数,必须定义相应的__ HAVE_ARCH_OPERATION宏

  否则,都是用lib/string.c 中实现的体系结构无关的标准操作。

  strcmp、strncmp,这个不用解释

  strnicmp,同strncmp,不检查大小写

  strcpy、strncpy这些也不用解释,

  strlcpy,类似于strncpy,但是如果源字符串大于size,那么能保证目标字符串仍然是0结尾字符串。

  char * strcat(char *, const char *);

  将src字符串附加到dest字符串,strncat同理。

  size_t strlcat(char *, const char *, __kernel_size_t);

  同strncat类似,但结果字符串长度不超过size。

  char * strchr(const char * s ,int c);

  在字符串s中查找c出现的第一个位置

  char * strrchr(const char *,int);

  同上,不过是查找出现的最后的位置

  extern __kernel_size_t strlen(const char *);

  统计一个0结尾字符串长度

  extern __kernel_size_t strnlen(const char *,__kernel_size_t);

  同上,但是统计长度不超过size

  __kernel_size_t strspn(const char * s,const char * accept);

  在s中统计完全由accept中字符组成的字符串长度

  __kernel_size_t strcspn(const char *,const char *reject);

  类似strspn,但统计的是完全不由reject中字符组成的字符串长度

  char * strstr(const char * s1, const char * s2);

  在s1中查找字串s2

  char * strpbrk(const char * cs,const char *ct);

  查找字符串ct中的字符在字符串cs中出现的第一个位置

  char * strsep(char **,const char *);

  将字符串划分成由ct分割的标记。

  还有一些操作适合于普通的内存区,而非字符串

  memset不多说,memset_io可用于IO区

  char *bcopy(char *dest, const char *src, size_t count)

  void *memcpy(void *dest, const void *src, size_t count)

  这两个功能相同,不过指针类型memcpy是void而已

  memcpy_fromio同上,不过可以从io区拷贝

  void *memmove(void *dest, const void *src, size_t count)

  同memcpy,不过可以用于重叠的源和目标区域


本文转载自:http://blog.csdn.net/tommy_wxie/article/details/8479935

上一篇: kernel-switch
下一篇: float-->int
hyhlinux
粉丝 8
博文 167
码字总数 51777
作品 0
海淀
程序员
私信 提问
Ekho 6.0 在CentOS5.9 编译出错

@黄冠能 你好,想跟你请教个问题,我在CentOS5.9中编译Ekho 6.0出错,麻烦帮看一下,信息如下: linux版本信息: $ uname -a Linux yakai.com 2.6.18-348.1.1.el5 #1 SMP Tue Jan 22 16:19:...

LuoYakai
2015/10/28
285
1
十六进制转化为整形的问题 。。。。。。不可思议,请高手解答

Linux下十六进制转化为整型,代码如下 #include #include int main() { char send[10]={0x00,0x56,0x97}; long type; printf("%02x %02x %02x",send[0],send[1],send[2]&0xff); type=send[0......

半点竹节
2013/04/03
284
4
Linux编程常见错误及解决方案

对于linux新手来说Linux编程会经常遇见一些问题,今天列出新手们最经常遇到的编程错误,并提供解决方案: 1)由于是Linux新手,所以现在才开始接触线程编程,照着GUN/Linux编程指南中的一个例...

最新更新消息
2015/11/03
0
0
线程编程 pthread 问题集合

1 undefined reference to `pthread_create' 由于pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()...

AlphaJay
2011/07/28
0
0
mysql api---从一个小例子开始mysql编程入门(3)

首先完善一下上一节的程序及遗留的问题 #include #include #include #include ////unsigned int mysql_errno(MYSQL *mysql) / int mysql_init(MYSQL handle) { MYSQL tmphandle = (MYSQL )ma......

baiweibi
2018/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库

数据库架构 数据库架构可以分为存储文件系统和程序实例两大块,而程序实例根据不同的功能又可以分为如下小模块。 1550644570798 索引模块 常见的问题有: 为什么要使用索引 什么样的信息能成...

一只小青蛙
今天
4
0
PHP常用经典算法实现

<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = int......

半缘修道半缘君丶
昨天
5
0
GIL 已经被杀死了么?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/8KvQemz0SWq2hw-2aBPv2Q 花下猫语: Python 中最广为人诟病的一点,大概就是它的 GIL 了。...

豌豆花下猫
昨天
5
0
git commit message form

commit message一般包括3部分:Header、Body、Footer。 <type>(<scope>):<subject>blank line<body>blank line<footer> header是必需的,body、footer可以省略。 header中type、subject......

ninjaFrog
昨天
5
0
聊聊Elasticsearch的CircuitBreakerService

序 本文主要研究一下Elasticsearch的CircuitBreakerService CircuitBreakerService elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/indices/breaker/CircuitBreakerService.ja......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部