atomic_tid::compare_exchange_weak
atomic_tid::compare_exchange_strong
std::mutex
std::lock_guard<mutex>
std::unique_lock<mutex>
mmap/munmap/msync
getcwd
readlink
取得符号连接所指的文件
int readlink(const char * path ,char * buf,size_t bufsiz);
函数说明 readlink()会将参数path的符号连接内容存到参数buf所指的内存空间,返回的内容不是以NULL作字符串结尾,但会将字符串的字符数返回。若参数bufsiz小于符号连接的内容长度,过长的内容会被截断。
返回值 执行成功则传符号连接所指的文件路径字符串,失败则返回-1,错误代码存于errno。
错误代码 EACCESS 取文件时被拒绝,权限不够
EINVAL 参数bufsiz 为负数
EIO I/O 存取错误。
ELOOP 欲打开的文件有过多符号连接问题。
ENAMETOOLONG 参数path的路径名称太长
ENOENT 参数path所指定的文件不存在
ENOMEM 核心内存不足
ENOTDIR 参数path路径中的目录存在但却非真正的目录。
chdir
描述
chdir()将调用进程的当前工作目录更改为
路径中指定的目录。
fchdir()与chdir()相同;唯一的区别是
目录是作为一个打开的文件描述符给出的。
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is
set appropriately.
IPV4、IPV6默认IP
/* IPv4 默认绑定地址 */
#define DEFAULT_IPV4_BIND_ADDRESS _T("0.0.0.0")
/* IPv6 默认绑定地址 */
#define DEFAULT_IPV6_BIND_ADDRESS _T("::")
AF_INET(又称 PF_INET)是 IPv4 网络协议的套接字类型,AF_INET6 则是 IPv6 的;而 AF_UNIX 则是 Unix 系统本地通信。
offsetof
offsetof宏返回的是MEMBER成员在内存中的实际地址。又因为整个结构体的起始地址是0,因此MEMBER成员的实际地址在数值上就等于MEMBER成员相对于结构体首地址的偏移量。
可变参数使用
int Format(const _CharT* format, ...)
{
_CharT* p = nullptr;
va_list arg_ptr;
va_start(arg_ptr, format);
int count = vasprintf(&p, format, arg_ptr);
va_end(arg_ptr);
if(count >= 0)
{
this->assign(p, count);
free(p);
}
return count;
}
size_t strspn(const char *s, const char *accept);
size_t strcspn(const char *s, const char *reject);
size_t strspn(const char *s, const char *accept);
宽字节版:size_t wcsspn(const wchar_t *wcs, const wchar_t *accept);
函数说明 strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。简单的说,
!!!若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。!!!
size_t strcspn(const char *s, const char *reject);
宽字节版:size_t wcscspn(const wchar_t *wcs, const wchar_t *reject);
与strspn作用相反
basic_string::substr
basic_string substr(size_type _Off = 0,size_type _Count = npos) const;
功能:从一个字符串复制一个从指定位置开始,并具有指定长度的子字符串。
参数
_Off 所需的子字符串的起始位置。字符串中第一个字符的索引为 0,默认值为0.
_Count 复制的字符数目
返回值 一个子字符串,从其指定的位置开始
StrChr
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);
char *strchrnul(const char *s, int c);
StrStr
char *strstr(const char *haystack, const char *needle);
char *strcasestr(const char *haystack, const char *needle);
StrPBrk
https://blog.youkuaiyun.com/tommy_wxie/article/details/7554332
函数原型:extern char *strpbrk(char *str1, char *str2)
参数说明:str1待比较的字符串,str2为指定被搜索的字符串。
所在库名:#include <string.h>
函数功能:比较字符串str1和str2中是否有相同的字符,如果有,则返回该字符在str1中的位置的指针。
返回说明:返回指针,搜索到的字符在str1中的索引位置的指针。
其它说明:暂时无。
实例:
#include<string.h>
#include<stdio.h>
int main()
...{
char *str1="please try again,sky2098!";
char *str2="Hello,I am sky2098,I like writing!";
char *strtemp;
strtemp=strpbrk(str1,str2); //搜索进行匹配
printf("Result is: %s ",strtemp);
return 0;
}
返回了str2中字符“l”在str1中位置的指针,打印出字符串“lease try again,sky2098!”。