摘要:
原始字面量 #include <iostream> using namespace std; int main (){ string str = R"(\t今天你学习了吗\n\n)"; string str1 = "(\t\n今天你学习了吗\n)"; string str2 = "(\\t\\n今天 阅读全文
摘要:
基于epoll实现的httpserver端 流程: 1 main函数: 传入端口号, 传入 想要访问的目录。 通过atoi 函数将获取到的port转成integer , 通过chdir将当前进程的工作路径转为要访问的目录。 然后将端口传入到自定义的epoll_run函数中。 2 epoll_run 阅读全文
摘要:
SOCKET 插板插座 网络套接字 在通信过程中,套接字一定是成对存在的 两份套接字,C一个 S一个 一个文件描述符指向一个套接字(该套接字内部由内核借助两个缓冲区实现) 网络字节序 小端法: 高位高地址 低位低地址 (Inter使用) 大端法 : 高位低地址 低位高地址 (IBM一开始使用)TCP 阅读全文
摘要:
Volatile 特性一 易变性,反应到汇编层面的就是两条汇编指令,下一条指令不会直接使用上一条指令对应的volatile变量的寄存器内容,而是从内存中重新读取 特性二 不可优化性 volatile告诉编译器,不要对我这个变量进行各种激进的优化,甚至将变量直接消除,保证程序员写在代码中的指令,一定会 阅读全文
摘要:
报错信息:fatal error: event2/bufferevent.h: No such file or directory解决办法:找到libevent安装的文件夹,如libevent-1.2.8-stable,找到下面的include目录,把该目录所有的文件复制到/usr/include/ 阅读全文
摘要:
在Linux中安装libevevt库中时出现这样的问题: 按正常步骤: ./configure 出现一下问题: 解决方案: ubuntu 平台 sudo apt install libssl-dev 阅读全文
摘要:
#epoll反应堆模型demo实现 在高并发TCP请求中,为了实现资源的节省,效率的提升,Epoll逐渐替代了之前的select和poll,它在用户层上规避了忙轮询这种效率不高的监听方式,epoll的时间复杂度为O(1), 也就意味着,epoll在高并发场景,随着文件描述符的增长,有良好的可扩展性。 阅读全文
摘要:
static static的成员不再单独属于一个对象,他是单独的保存在内存的某个地址,也就只有一份。所以在设计程序的时候要看这个东西是不是只需要一份。 static函数和一般的函数一样,在内存中只有一份。静态函数没有this指针,不能像一般成员一样去访问和存取一般的成员数据,他只能处理静态的对象,静 阅读全文
摘要:
stack(栈),heap(堆) Stack:是存在于某作用域(scope)的一个内存空间(memory space)。例如当你调用函数,函数本身即会形成一个stack用来放置它所接收的参数,返回地址,及局部对象(local object)。 Heap:或称system heap,是指由操作系统提供 阅读全文
摘要:
Linux的文件权限和目录配置 在linux中的每个用户必需属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。 (1)所有者 一般为文件的创建者,谁创建了该文件,就是天然的成为该文件的所有者。 (2)所在组 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的 阅读全文