随笔分类 - linuxC/C++
摘要:分析线程的CPU占用率模块 /proc/stat/ Linux内核提供了一个虚拟 /proc文件系统,为各种内部数据结构提供了接口。 /proc/stat表示CPU在各种状态下花费的时间的信息。根据这些信息,我们可以一些简单的算数得到当前CPU占用率,即在空闲状态以外的任何状态下所花费的时间百分比。
阅读全文
摘要:出错代码 #include <thread> #include <iostream> #include <utility> #include <vector> #include <string> char readProcTask(const std::string &cmd, struct tim
阅读全文
摘要:下载AWS SDK for C++ git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp PC编译确定源代码下载正确 sudo apt-get install libcurl4-openssl-dev libssl-dev
阅读全文
摘要:img->cv::Mat-->Base64 std::vector<uchar> buf; cv::Mat mat(height, width, CV_8U, image_data.data()); cv::imencode(".png", mat, buf); auto enc_msg = rei
阅读全文
摘要:cmake编译flann的时候报错如下 CMake Eroor at src/cpp/CMakeLists.txt:86 (add_library): No SOURCES given to target: flann CMake Eroor at src/cpp/CMakeLists.txt:32
阅读全文
摘要:ZMQ_PUB和ZMQ_SUB 关于缓存区的问题 问题描述 环境 ubuntu18.04 zmq version:4.3.3 设置了一个发送端和一个接收端,发送端是ZMQ_PUB,接收端ZMQ_SUB,并且通过zmq_setsockopt设置了ZMQ_SNDHWM,ZMQ_RCVHWM,ZMQ_SN
阅读全文
摘要:Ubuntu 安装ccache ==sudo apt-get install ccache== 安装完后确认安装执行==which ccache== $ which ccache /usr/bin/ccache 在 ==~/.bashrc== 或者 ==~/.zshrc==文件内追加以下内容 # c
阅读全文
摘要:文件结构 reactor_main.cpp reactor_server.cpp reactor_server.h CMakeLists.txt CMakeLists.txt cmake_minimum_required(VERSION 3.10.2) project(modern_cpp_prac
阅读全文
摘要:vim gcc gdb Makefile kcachegrind(实际开发暂未用到) valgrind cppcheck 后期加入到开发过程中: gtest Doxygen cmake trash-cli
阅读全文
摘要:https://blog.csdn.net/s2603898260/article/details/79371024 提示关键字: 指针0的使用 typeof的使用
阅读全文
摘要:在程序调试过程中程序崩溃的情况时有发生,把出问题时的调用栈信息打印出来是一种不错的解决办法。 当然还有一些其他方法:https://www.cnblogs.com/jiangyibo/p/8653720.html 首先,介绍三个函数: 1.int backtrace(void **buffer,in
阅读全文
摘要:void*类型定义的指针变量只可以接收对象的地址,而没有对象类型这个概念。所以void*指针变量是不能直接用“*指针变量”去访问,需要强制类型转换后才能“间接”访问: *(type*)指针变量,必须给出正确的type!
阅读全文
摘要:vim不支持直接从其他应用复制内容粘贴过来,而是模拟用户键盘输入来实现的,一般设置vim在换行时自动以上一行的的缩进为初始位置,这样就会导致复制过来的内容出现缩进错乱。 set paste 解决粘贴乱序问题。 但是,如果我们不停的用"set paste" "set nopaste"来切换还是比较麻烦
阅读全文
摘要:因为用vim编辑代码设置了Tab键为4个空格,但有时候我们需要编写Makefile,必须使用Tab,同时也不想设置set noexpandtab。 其实可以先Ctrl_v组合键,再按Tab键盘,这样我们就可以成功使用Tab了。
阅读全文
摘要:编程之路刚刚开始,错误难免,希望大家能够指出。 一、Inotify机制 1.简单介绍inotify:Inotify可用于检测单个文件,也可以检测整个目录。当检测的对象是一个目录的时候,目录本身和目录里的内容都会成为检测的对象。 此种机制的出现的目的是当内核空间发生某种事件之后,可以立即通知到用户空间
阅读全文
摘要:编程之路刚刚开始,错误难免,希望大家能够指出。 自己实现一个tail的功能(使用IO系统调用),完全类似的操作步骤就不实现了,主要是让自己加深了解。 下面的代码不足之处很多,以后有空改正。
阅读全文
摘要:编程之路刚刚开始,错误难免,希望大家能够指出。 malloc()和free()是我经常需要用到的函数,一般情况下,C程序使用malloc()在堆上分配内存,free()释放内存,两者的参数和返回值就不在这叙述了,本文主要是简单的记录下malloc()和free()的工作原理。 malloc()返回内
阅读全文
摘要:编程之路刚刚开始,错误难免,希望大家能够指出。 O_APPEND表示以每次写操作都写入文件的末尾。lseek()可以调整文件读写位置。 <<Linux/UNIX系统编程手册>>上有这样一个问题:当在O_APPEND打开后,然后用 lseek移动文件开头,然后再用write写,这个时候,数据会显示在文
阅读全文
摘要:编程之路刚刚开始,错误难免,希望大家能够指出。 有些需求需要我们不断的输入数据很庞大,如果我们安装常规方法不断地在终端输入值很麻烦(前提是输入的数据是固定的,并不会随程序的运行而改变),这个时候我们就可以调用freopen函数来解决这个麻烦。 freopen一般都是将stdin和stdout重定向。
阅读全文
摘要:编程之路刚刚开始,错误难免,希望大家能够指出。 每个进程都有自己的环境变量,在C语言程序中可使用外部变量(char **environ)来访问环境,而库函数可允许进程去获取或修改自己环境的值。 两种方法使用该变量。 第一种是将其直接声明为外部变量,就可以直接调用了: 第二种,该变量在unistd.h
阅读全文