HP_Socket学习02 Linux

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.csdn.net/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!”。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值