12813126eSlogin #pragma once 22813126eSlogin #include "glib.h" 32813126eSlogin /** 42813126eSlogin * @brief 拷贝整个字符串 52813126eSlogin * 62813126eSlogin * @param dst 目标地址 72813126eSlogin * @param src 源地址 82813126eSlogin * @return char* 目标字符串 92813126eSlogin */ 102813126eSlogin char *strcpy(char *dst, const char *src); 112813126eSlogin 122813126eSlogin //计算字符串的长度(经过测试,该版本比采用repne/scasb汇编的运行速度快16.8%左右) strlen(const char * s)132813126eSloginstatic inline int strlen(const char *s) 142813126eSlogin { 152813126eSlogin if (s == NULL) 162813126eSlogin return 0; 172813126eSlogin register int __res = 0; 182813126eSlogin while (s[__res] != '\0') 192813126eSlogin { 202813126eSlogin ++__res; 212813126eSlogin } 222813126eSlogin return __res; 232813126eSlogin } 242813126eSlogin 252813126eSlogin /** 262813126eSlogin * @brief 测量字符串的长度 272813126eSlogin * 282813126eSlogin * @param src 字符串 292813126eSlogin * @param maxlen 最大长度 302813126eSlogin * @return long 312813126eSlogin */ 322813126eSlogin long strnlen(const char *src, unsigned long maxlen); 332813126eSlogin 342813126eSlogin /* 352813126eSlogin 比较字符串 FirstPart and SecondPart 362813126eSlogin FirstPart = SecondPart => 0 372813126eSlogin FirstPart > SecondPart => 1 382813126eSlogin FirstPart < SecondPart => -1 392813126eSlogin */ 402813126eSlogin 412813126eSlogin int strcmp(const char *FirstPart, const char *SecondPart); 422813126eSlogin 43*4fda81ceSLoGin char *strncpy(char *restrict d, const char *restrict s, size_t n); 442813126eSlogin 452813126eSlogin long strncpy_from_user(char *dst, const char *src, unsigned long size); 462813126eSlogin 472813126eSlogin /** 482813126eSlogin * @brief 测量来自用户空间的字符串的长度,会检验地址空间是否属于用户空间 492813126eSlogin * @param src 502813126eSlogin * @param maxlen 512813126eSlogin * @return long 522813126eSlogin */ 532813126eSlogin long strnlen_user(const char *src, unsigned long maxlen); 542813126eSlogin 552813126eSlogin /** 5627a97abdSDaJiYuQia * @brief 拼接两个字符串(将src接到dest末尾) 5727a97abdSDaJiYuQia * 5827a97abdSDaJiYuQia * @param dest 目标串 5927a97abdSDaJiYuQia * @param src 源串 6027a97abdSDaJiYuQia * @return char* 6127a97abdSDaJiYuQia */ 6227a97abdSDaJiYuQia char *strcat(char *dest, const char *src);