总结
sidemap
内不修正其所以有,然常欲人之有
展开
-
【muduo】避免使用无效的mutex
mutex原创 2024-03-20 11:03:35 · 223 阅读 · 0 评论 -
【性能】单例模式与指针直接使用方式对比
单例模式耗费性能原创 2024-01-25 14:51:42 · 510 阅读 · 0 评论 -
lambda表达式捕获列表---值捕获的方式(In lambda function: assignment of read-only variable)
c++ lambda 捕获列表 值传递原创 2023-09-19 14:18:24 · 234 阅读 · 0 评论 -
undefined reference to `vtable for’”解决方法之一
vtable原创 2023-08-15 17:13:29 · 203 阅读 · 0 评论 -
【C语言】bit位printf
bit printf原创 2023-05-10 09:49:37 · 615 阅读 · 1 评论 -
【c语言】bool类型的定义文件
c语言 bool原创 2022-09-14 11:34:45 · 693 阅读 · 0 评论 -
构想一个Team构成要素
Team构成要素原创 2022-08-19 11:50:06 · 176 阅读 · 0 评论 -
【C/C++】函数调用小议
接口调用原创 2022-06-30 09:01:36 · 209 阅读 · 0 评论 -
【Linux】pthread_t作为线程标识符存在隐患
linux thread 标识符原创 2022-06-13 14:28:31 · 208 阅读 · 0 评论 -
【C语言】anonymous/unnamed struct&&union
c语言 anonymous structure/union原创 2022-06-10 14:00:51 · 687 阅读 · 0 评论 -
【C++】std::function使用方式举例验证
C++原创 2022-06-08 13:30:01 · 134 阅读 · 0 评论 -
【C++】正确使用std::function指向类的非静态函数
std::function原创 2022-06-06 16:21:44 · 501 阅读 · 2 评论 -
【boost】linux编译没有libboost_json.so
boost json原创 2022-05-27 13:22:59 · 504 阅读 · 1 评论 -
【c语言】大小可变结构体
对于某些情况,我们不易判断出某个数组中元素的个数。例如利用网络通信获取某个列表,这个列表可长可短。这种情况可以考虑使用大小可变结构体,形如:typedef struct tag_ST1{ int nCount; int items[0];} ST1;nCount标识items中元素的数量,如果只求结构体ST1的size,只会得到nCount的占用空间的size。使用方法,可参考如下代码:#include<stdio.h>#include<stdl原创 2022-05-16 16:26:51 · 723 阅读 · 0 评论 -
【C++】析构函数下发任务注意事项
c++ muduo原创 2022-04-27 11:51:01 · 1128 阅读 · 0 评论 -
【cpprestsdk】浅谈cpprestsdk线程池及使用
cpprest原创 2022-04-18 15:55:23 · 1866 阅读 · 0 评论 -
【C++】如何得知函数是否为第一次调用
c++原创 2022-04-18 14:52:55 · 1018 阅读 · 0 评论 -
【编译】gcc -O2 编译flag里面做了什么
gcc -O2原创 2022-04-14 17:57:18 · 501 阅读 · 0 评论 -
【c++】std::bind的使用方法深一层理解
c++ muduo原创 2022-04-01 17:04:44 · 1064 阅读 · 0 评论 -
【C++】父类函数在子类中绑定到函数对象上,导致成员数据不稳定
c++原创 2022-03-25 15:54:24 · 925 阅读 · 0 评论 -
std::mutex影响性能
mutex 性能提升原创 2022-03-03 20:56:36 · 601 阅读 · 0 评论 -
【死锁】condition_variable导致一种死锁情况
死锁,condition_variable原创 2022-02-22 09:28:00 · 1048 阅读 · 0 评论 -
常量指针与指针常量
对于如何判断一个指针是 常量指针 还是指针常量,借鉴《C/C++常量指针和指针常量的区别》中的一句话:对于两者使用方式,同样借鉴《C/C++常量指针和指针常量的区别》中的一段话在此对指针常量在C++使用的场合之一说明一下:创建被管理对象时,需要将管理对象带入其中,并且管理对象作为自己成员之一。但是,如果创建的对象重写了operator=操作符,因为要对其中的管理对象进行赋值,会出现编译错误。error: assignment of read-only member...原创 2022-01-29 11:59:12 · 672 阅读 · 0 评论 -
【C语言】sizeof常量字符串
常量字符串的常用表示方式:1、常量自身;如:“abc”2、将常量存放到数组;如:char []a = "abc"3、用字符指针指向常量字符串;如:const char *pStr = "abc"以上三种表示方式,通过sizeof计算出来值有自身的含义:1、存放常量字符串的空间; sizeof("abc") = 42、存放常量字符串使用的数组空间;sizeof(a) = 43、指向常量字符串的指针空间;sizeof(pStr) = 8 [64位系统]#include <stdli.原创 2022-01-24 10:00:26 · 4415 阅读 · 0 评论 -
【boost】解决undefined reference to `boost::filesystem::detail::copy_file
在程序的连接时,出现如题的错误。使用同样的库,别的程序没有出现问题。从网上找了一些方法基本上就是在#include "boost/filesystem.hpp"之前加上#define BOOST_NO_CXX11_SCOPED_ENUMS。通过测试,发现也是通不过的。后来编译链接时,指定了使用boost_filesystem库的具体位置,问题解决了。通过nm -D 的方式查看系统默认的库,发现也有copy_file。原因不清楚,在此mark,后续继续调查。...原创 2022-01-21 11:02:04 · 2454 阅读 · 0 评论 -
【C++】纯虚函数编译错误undefined reference to,原因之一
在父类定义了纯虚函数,在子类对其实现,编译时出现错误:undefined reference to '**********'原因:使用的纯虚函数的时机,应该在子类对象创建之后再调用。例如下面代码:class A{public: A() { func(); // 错误出现语句 } virtual ~A() = default; virtual int func() = 0;};class AA : public A{原创 2022-01-12 14:26:06 · 1232 阅读 · 0 评论 -
vector空间的申请规则
std::vector原创 2021-12-24 18:37:12 · 1450 阅读 · 0 评论 -
onvif使用简述
onvif原创 2021-12-23 10:56:07 · 2981 阅读 · 6 评论 -
Bus error情况之一
Bus error原创 2021-12-17 16:47:47 · 1358 阅读 · 0 评论 -
std::map 多值key
通过将key封装为一个类,类中重写operator<来实现。#include <map>#include <iostream>class CKey{public: CKey(int nSenderId, int nTcpsessionId) : m_nSenderId(nSenderId), m_nTcpsessionId(nTcpsessionId) {} ~CKey() = default; int m_nSenderId;原创 2021-12-13 12:05:48 · 1022 阅读 · 0 评论 -
std::condition_variable/lock_guard/unique_lock一种死锁情况
condition_variablelock_guardunique_lock原创 2021-11-30 18:55:36 · 2778 阅读 · 0 评论 -
std::condition_variable与std::unique_lock的结合使用
std::mutex mutex;std::condition_variable cv;// 条件变量与临界区有关,用来获取和释放一个锁,因此通常会和mutex联用。std::unique_lock lock(mutex);// 此处会释放lock,然后在cv上等待,直到其它线程通过cv.notify_xxx来唤醒当前线程,cv被唤醒后会再次对lock进行上锁,然后wait函数才会返回。// wait返回后可以安全的使用mutex保护的临界区内的数据。此时mutex仍为上锁状态cv.wait.原创 2021-11-16 10:25:13 · 3934 阅读 · 0 评论 -
pure virtual method called(__cxa_pure_virtual)崩溃
纯虚函数,在子类中实现,在父类中某个线程调用,线程的调用的结束在父类的析构函数中;导致__cxa_pure_virtual崩溃pure virtual method called直接上demo代码,详见父类A的purefunc/* * 纯虚函数,在子类中实现,在父类中某个线程调用, * 线程的调用的结束在父类的析构函数中; * 导致__cxa_pure_virtual崩溃pure virtual method called * #0 0x00007fc689aa5387 in rais原创 2021-11-15 17:01:14 · 1531 阅读 · 0 评论 -
【muduo】TcpConnection之send
职责:负责与连接的peer进行数据传输前提:传输数据之前的连接任务交给其他类完成(TcpClient:Connector、TcpServer:Acceptor)创建:利用连接的socket文件描述符创建了channel,并对channel进行了read监听(connectEstablished)send:1、没有开始write监听及outputBuffer中没有数据,利用socket直接发送;不能完全发送,将数据放入outputBuffer。2、若outputBuffer中含有数据,就原创 2021-11-05 15:04:03 · 147 阅读 · 0 评论 -
std::string (const char*, const char*) 构造函数和assign使用
学习muduo代码发现多处使用了std::string(const char*, const char*) 及成员函数std::string::assign(const char*, const char*)。但是通过查看cplusplus.com并没有发现这两个函数的说明,如下:于是,编写了测试程序,验证是有效的,不知道这其中进行了什么转换,还是cpluscplus.com自身描述的不完全。测试代码:#include <stdlib.h>#include &l...原创 2021-11-04 10:39:36 · 566 阅读 · 0 评论 -
C语言_宏函数_换行符
在写代码时,发现很多代码重复,为了缩减代码及利于代码维护,将重复的代码通过宏函数的方式进行定义。简单地将重复代码拷贝出来,通过宏定义封装了一下;因为多行代码,通过换行符进行了规范。使用了宏函数之后发现代码无效了,找了半天宏函数的定义规则,查阅自己的代码,也没有发现什么问题。把宏函数封装的代码替换回去就好用。最终发现了问题:宏函数的实现部分有 // 函数注释,导致在这之后的代码全部作为注释进行了处理。例如:下面宏函数,有效代码只有在 // 之前的代码有效。#define DEF_FUNC()原创 2021-11-01 14:45:00 · 1194 阅读 · 0 评论 -
【FFMPEG】AVFrame的释放
AVFrame申请,一般通过av_frame_alloc的方式申请;但是,如果对AVFrame其中的data成员进行赋值,需要通过类似av_image_alloc的方式申请data的空间。如果申请了data空间,需要再释放该AVFrame时,需要首先利用av_freep(AVFrame->data[0]),对其中的data空间进行释放;然后使用av_frame_free对AVFrame进行释放。...原创 2021-10-08 19:04:18 · 1194 阅读 · 0 评论 -
[ffmpeg] 视频截取与视频拷贝的区别
视频截取:ffmpeg -i inputfile -ss 00:00:00 -t 视频时长 outputfile视频拷贝:ffmpeg -i inputfile -vcodec copyoutputfile区别:截取=> ffmpeg将内部pts进行重新设置拷贝=> ffmpeg只对数据包进行拷贝,内部信息不变...原创 2021-09-02 17:39:46 · 260 阅读 · 0 评论 -
[Segmentation fault.]ACE_Notification_Queue::reset
写了一个测试程序,通过监控狗启动,在退出时,总是崩溃。后来发现,测试程序如果是多线程,就不能崩溃,至于原因,尚未调查。在此记载,希望能够给予需要的帮助。崩溃堆栈如下:[Thread debugging using libthread_db enabled]Using host libthread_db library "/lib64/libthread_db.so.1".Core was generated by `./JDT_ProcessMonitor'.Program terminat原创 2021-07-13 11:56:33 · 117 阅读 · 0 评论 -
live555 gdb 断点无效
利用gdb在live555 源码中设置了断点,发现断点之后的log都打印出来了,但是断点没有停下。看了一下Makefile,发现编译选项中没有添加 -g 导致的原创 2021-05-12 16:37:11 · 158 阅读 · 0 评论