摘要:
要查找一个ssl.h的文件 find / -name ssl.h 2> /dev2/null 使用root权限,从根目录下查找 ssl.h文件 将 错误日志 重定向到 /dev2文件夹下面的 null文件 如果dev2文件夹不存在,需要手动创建 /usr/include/openssl/ssl.h 阅读全文
摘要:
获取当前时间戳 #include <iostream> #include <sys/time.h> int main(){ struct timeval tv; gettimeofday(&tv, NULL); auto count = tv.tv_sec * 1000ul + tv.tv_usec 阅读全文
摘要:
在 C++ 中,仿函数是一种可以像函数一样调用的对象。 通过实现 operator(),你可以创建一个类或结构体,然后像函数一样使用它,这就是仿函数的概念。 当我们谈到仿函数时,通常是指定义了函数调用运算符 operator() 的类或结构体。 以下是两个简单的 C++ 仿函数示例,一个用于比较整数 阅读全文
摘要:
#查看本机core文件大小 ulimit -c 设置core文件大小为无限制 echo "ulimit -c unlimited" >> ~/.bashrc source ~/.bashrc 阅读全文
摘要:
lsblk df -h file_path # 查看磁盘分区 lsblk [henry@192 henry-sylar]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 300M 0 阅读全文
摘要:
较高版本的gdb能显示更多的调试信息,因此有必要升级一下自己的编译环境。 # 安装 GMP 库及其开发文件(gdb的安装需要这个) sudo yum install gmp gmp-devel # 下载源文件 wget http://ftp.gnu.org/gnu/gdb/gdb-12.1.tar. 阅读全文
摘要:
手痒,在centos7上面,升级了glibc,然后导致正常程序编译都出现了问题。 这是编译的报错: /opt/rh/devtoolset-9/root/usr/include/c++/9/x86_64-redhat-linux/bits/os_defines.h:44:19: error: miss 阅读全文
摘要:
sylar 框架 linux系统 centos7,内核版本2.6.18及以上版本 gcc 9.1及以上 cmake 3.0及以上 yaml-cpp 0.6.0 及以上 boost 1.5.3 及以上 gdb 12.1及以上 openssl gcc 安装: sudo yum -y install bz 阅读全文
摘要:
这是一个C语言多线程读写锁的例子。 创建了10个线程,线程对一个全局变量做自减操作。减到0之后线程退出。 每个自减线程里面添加了 写锁,避免了数据竞争的情况。 #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include < 阅读全文
摘要:
1.下载yaml-cpp 0.3.0版本源码 https://github.com/jbeder/yaml-cpp/releases/tag/release-0.3.0 ## 解压文件 unzip yaml-cpp-yaml-cpp-0.7.0.zip ## 创建build文件夹 mkdir bui 阅读全文
摘要:
记录一次异常的排查 // 这是yam-cpp源代码里面,YAML::LoadFile的方法 Node LoadFile(const std::string& filename) { std::ifstream fin(filename); if (!fin) { throw BadFile(file 阅读全文
摘要:
C++编译的时候,遇到了这个错误。 翻译这个错误就是,将一个 引用类型,绑定到了一个 常量类型上面。这个是不允许的。 In file included from /home/henry/workspace/henry-sylar/tests/test_config.cpp:1: /home/henr 阅读全文
摘要:
C++标准库本身没有直接提供读写锁,但C++11引入了一些工具,例如std::shared_mutex(C++14引入的,C++17之前的标准库中可能不支持)以及相关的读锁定(std::shared_lock)和写锁定(std::unique_lock)机制,用于实现读写锁的功能。 下面是一个简单的 阅读全文
摘要:
map map是一个有序的关联容器,它存储的元素是键值对(key-value pair),并且按照键的顺序进行排序。 map内部使用红黑树实现,这使得它可以在平均情况下实现O(log n)的插入、删除和查找操作。 例如,如果你想存储一些学生的姓名和对应的年龄,并按照年龄从小到大排序,那么map是一个 阅读全文
摘要:
查找某个文件里面的文本内容: find /usr/local/include/ -name "*.h" | xargs grep "LoadFile" 阅读全文
摘要:
C++标准库 std::string 的 find_first_not_of 方法介绍: 例如: stra.find_first_not_of(s_fmt_a) 在字符串 stra 中找到第一个 不在 s_fmt_a 字符串中出现过的字符。 stra = "abc", abc 字符 都在 s_fmt 阅读全文
摘要:
#include <stdio.h> #include <sys/syscall.h> #include <unistd.h> #include <pthread.h> void *printThreadId(void *arg) { pid_t tid = syscall(SYS_gettid); 阅读全文
摘要:
std::make_pair 和 std::make_tuple 都是用于创建对应类型的对象的 C++ 标准库函数模板。 它们的区别主要在于它们所处理的数据类型和返回类型。 std::make_pair: std::make_pair 用于创建一个 std::pair 对象,std::pair 是一 阅读全文
摘要:
在C++中,预处理器提供了一些符号和运算符,这些符号在宏定义中有特殊的含义。 以下是一些常见的符号: #:字符串化运算符,用于将宏参数转换为字符串。 #define STRINGIZE(x) #x std::cout << STRINGIZE(Hello); // 输出 "Hello" ##:连接运 阅读全文
摘要:
C++ 用 std::get<> 访问元组 #include <iostream> #include <tuple> int main() { // Creating a tuple std::tuple<int, double, std::string> myTuple(42, 3.14, "He 阅读全文