![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码库
代码无情
人生苦短,我最好躺着赚钱
展开
-
【demo】利用protobuf读取配置文件
说明这是一个利用protobuf读取配置文件的 demo。利用protobuf读写二进制流的例子在网上有很多,但是读写配置文件我觉得也是一个很大的应用空间。proto文件ken@ubuntu:~/test/protobuf/test_pf$ cat addressbook.protosyntax = "proto2";package tutorial;message Person { required string name = 1; required int32 id = 2;原创 2021-09-10 17:18:41 · 766 阅读 · 0 评论 -
计时器类
using namespace std::chrono;class TimerBase {public: //init TimerBase TimerBase() : m_start(system_clock::time_point::min()) {} //clear timer void clear() { m_start = system_clock::time_point::min(); } bool IsSta原创 2021-04-19 10:47:06 · 118 阅读 · 0 评论 -
linux查看当前CPU调度的线程
在shell上复制并粘贴服下命令while true; do cat /proc/sched_debug | grep "curr->pid"; sleep 1; done使用场景:粗略判断是哪个线程占用CPU比较频繁,配合GDB可以找到问题进程中的某个线程,缩小问题的搜索范围。缺点:只能1秒一输出,精度不够。...原创 2021-01-11 15:38:03 · 635 阅读 · 0 评论 -
C++11 带位宽和填充的输出
头文件:#include <iomanip>设置填充:cout.fill('-');//一次调用永久生效设置宽度:cout<<std::setw(2)<<0x1<<std::endl;//每次cout都要调用一次设置16进制:std::cout<<std::hex<<0xbb<<std::endl;//一次调用,永久生效...原创 2020-08-22 11:40:51 · 549 阅读 · 0 评论 -
C++11 按行读取文件的迭代器
定义:#include <iostream>#include <fstream>#include <string>#include <cstddef>//ptrdiff_t 需要该头文件using namespace std;class ifs_line_reader{ class iterator { typedef ptrdiff_t different_type;//定义++原创 2020-07-31 16:29:41 · 523 阅读 · 0 评论 -
C++11 打印系统时间(精确到毫秒)和时间戳(毫秒单位)
把下面这两个函数加入代码中:std::time_t getTimeStamp(){ std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds> tp = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now()); auto tmp=std::chron原创 2020-06-05 11:48:41 · 12459 阅读 · 0 评论 -
使用cmake做工程构建时,有关install的一些小技巧
cmake自带变量CMAKE_INSTALL_PREFIX不能随着subdir传递下去,必须要在最外层指定由我们自定义的变量可以随着subdir传递下去拷贝目录用如下cmake命令:INSTALL(DIRECTORY ${WORK_PATH}/auto_part_tool DESTINATION "usr/bin" DIRECTORY...原创 2020-04-16 14:50:23 · 1107 阅读 · 0 评论 -
readn代码实现
size_t readn(int fd, void *buffer, size_t length) { size_t count; ssize_t nread; char *ptr; ptr = buffer; count = length; while (count > 0) { nread = read(fd, ptr, ...原创 2019-09-23 09:34:24 · 130 阅读 · 0 评论 -
sscanf高级用法
理解了%[^|]|这个模式就基本能解析复杂字符串了。这个模式是%s的一个正则表达式方向的进化,本意也是要取字符串,但是是有选择的取。如何选择,就写在[]中。其中的^表示“不取”,不取哪些模式就写在^的后面。例子中的[^\]就表示不取|,取到|就停止了,最后一个|则对应源串中的|。整体来看,%[^|]|就表示取到|为止(不取这个|)然后跳过|。另外还有更多的取%s的进化,比如%[0-9](只...原创 2019-08-09 09:36:08 · 320 阅读 · 0 评论