quick commands
记录一些常用的命令 1 nc 1 建立TCP连接 nc hostname port 2 监听TCP端口 nc -l -p port 监听UDP的命令是nc -u -l -p port 3 发送文件 nc -w 3 hostname port < file 4 接收文件 nc -l -p port > file 5 发送UDP数据 echo "data" |...
记录一些常用的命令 1 nc 1 建立TCP连接 nc hostname port 2 监听TCP端口 nc -l -p port 监听UDP的命令是nc -u -l -p port 3 发送文件 nc -w 3 hostname port < file 4 接收文件 nc -l -p port > file 5 发送UDP数据 echo "data" |...
船新的构造提案,realloc STL algorithms for trivial relocation Polymorphic types aren’t trivially relocatable C++ 实现 shared_ptr / weak_ptr /enable_shared...
c++里的一些类型promotion,先随便看看一元+操作符的使用技巧 不过若是操作数为整数或无作用域枚举类型,一元 + 操作符会执行 Integral promotion,此时会发生隐式转换。例如 // unscoped enumeration enum Enum : unsigned int { enum_val_a, enum_val_b, enum_val_c }; ...
asan,即Address Sanitizer,是一个适用于c/c++的动态内存错误检测器,它由一个编译器检测模块(LLVM pass)和一个替换malloc函数的运行时库组成,在性能及检测内存错误方面都优于Valgrind。 释放后使用(use-after-free)、多次释放(double-free)、缓冲区溢出(buffer overflows)和下溢(underflows) 在生...
c++20对游戏开发友好的特性 支持了c的Designated initializers,就是strcut里.xxx=的构造方式 buffer io 了解一下buffer io time point精度损失 mac上的 飞哥写的malloc的,随便看看...
最近在开发代理相关的,从ss重温一下代理 ss是一个能骗过防火墙的网络代理工具。它把要传输的原数据经过加密后再传输给特定的relay节点,再由relay节点转发到真正的终端 firewall即不知道内容,又不知道目的地(不是封锁ip),只能放行 因此可以把ss分成两个部分 ss-local ss-local的职责是在本机启动和监听着一个服务,本地软件的网络请求都先发送到ss-loc...
主要说下模板的声明和实现分离 如果不用std::variant的话,要实现模板声明和实现分离,需要在头文件中声名,然后在cpp里定义模板,然后要继续在cpp里声明所有要用的类型 // header.h template <typename T> void show(T t); // header.cpp template <typename T> void sh...
c++20的modules, 用clang编译的话 import <iostream>; int main() { std::cout << "Hello World.\n"; } 需要预先编译成模块文件 clang++和gcc的命令看起来不太一样 clang++ -std=c++20 -xc++-system-header --precompile i...
线程到底会share哪些资源? 今天看到inet_ntoa这种函数,我记得在glibc下,稍微新一点的,都应该是线程安全的,但是在openbsd下面发现并不一定。之前游双那本书里写的放到现在不全对了。 Drepper大佬在这个commit里修了这个问题。 但是apple能找到的部分,看起来还是没有改过… c语言里有很多不想管理buffer的函数实现,返回char*, 内部就用一个st...
大多数时候自赋值的检查是没有必要的,尤其是没有使用什么裸指针类型之类的。如果你自己的类里面全部是高级的类型,没有必要自己重载operator= 但有一种情况,一个类持有一个指针,且掌控这个指针的生命周期,这时候就需要自己重载operator=,来避免自赋值的情况。 class T { int* p; public: T(const T &rhs) : p(rhs.p ? n...