摘要:
双引号"xxx.h",表示编译器先在用户的工作目录下搜索头文件,如果搜索不到则到系统默认目录下去寻找,所以双引号一般用于包含用户自己编写的头文件。如:#include "student.h" 尖括号<xxx.h>,表示编译器只在系统默认目录或尖括号内的工作目录下搜索头文件,并不去用户的工作目录下寻找 阅读全文
摘要:
只能在uv_close之后的uv_cb中对handle内存进行释放。 因为uv_close本身只是将handle代释放队列,倘若释放时遇到某些异步处理(如:uv_write)需要失败回调通知,将会继续调用对应的回调,此时再访问handle和可能因内存访问coredump。 void TcpHandl 阅读全文
摘要:
gcc -dM -E - < /dev/null gcc -dM -E - < /dev/null 阅读全文
摘要:
shm_open() allows multiple un-related processes to access the same shared memory - since it can be accessed by a well know name.shmget() requires some 阅读全文
摘要:
一、padavan版本为:h大的最新版本 https://opt.cn2qq.com/padavan/二、这个padavan能用的frp好像只有最新版本0.37了。 三、frp页面配置如下:1、打开frp,打开frpc 2、脚本配置(实际真正修改的就是客户端部分) #!/bin/sh export 阅读全文
摘要:
shared_ptr允许多个指针指向同一个对象;unique_ptr则"独占"所指向的对象。 所以看使用者的意图,想这个对象咋么用。 weak_ptr只是是辅助类,它是一种弱引用。本质应该没啥作用,它可以为强引用提前占位,但它的存在不会占据引用计数。 比如enable_shared_from_thi 阅读全文
摘要:
基本这个错误基本就是出现在shared_from_this调用过程中。 或者对应对象不是用make_shared分配,或者对应的对象已经释放了(实际释放后也不一定就会报错,但是当使用valigrind检查内存时,释放内存后会把内存重置,此时会检测到weak_ptr应该设置的标识不对而报错。)。 阅读全文
摘要:
libuv 采用了 异步 (asynchronous), 事件驱动 (event-driven)的编程风格, 其主要任务是为开人员提供了一套事件循环和基于I/O(或其他活动)通知的回调函数, libuv 提供了一套核心的工具集, 例如定时器, 非阻塞网络编程的支持, 异步访问文件系统, 子进程以及其 阅读全文
摘要:
libuv的三种运行模式: UV_RUN_DEFAULT: 默认轮询模式,此模式会一直运行事件循环直到没有活跃句柄、引用句柄、和请求句柄 UV_RUN_ONCE:一次轮询模式,处理一个事件。 UV_RUN_NOWAIT:一次轮询模式,最多处理一个事件。uv_run(loop, UV_RUN_NOWA 阅读全文
摘要:
CPU 同内存交换数据的最小内存单位为4字节,即32位由CPU总线决定,所以小于4 字节的读取或者赋值操作无需加锁。即使不加锁也不会出现读取到的4字节中一半数据被改一半数据没有被改的情况。 但对 i++ 这类组合操作,仍可能需加锁. 因为i++是至少一次读取i一次写入i这两条命令,中间被打断就无法保 阅读全文