解决SIGPIPE信号导致的程序崩溃

Linux下,对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程。
Linux下,对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程。
项目配置属性->C/C++->预处理器->预处理器定义,增加NOMINMAX即可。
使用 enable_shared_from_this。这是一个…
编译器对代码的优化方式不同导致的bug
当read结束时,会立即跳出while循环,而不是下次读取时才跳出,因此会导致while循环少执行一次。
解决方式是再写一个C++槽函数,然后原先的函数通过QMetaObject::invokeMethod方式调用它。
VisualStudio增加C++命令行/D_HAS_STD_BYTE=0
起因是一个求前后两个时间戳的中间值,简单的把两个时间戳相减再乘以一个比率(0.235)的事,但发现结果不对……算出来的新时间戳怎么比原先的较大时间戳的值还要大?!
简单粗暴的方法是修改socket的SO_LINGER设置。
在创建的DLL工程中引入Protobuf,需要注意以下几点。1、使用DLL导出宏 2、使用DLL时不能包含DLL中已使用的XXX.pb.cc文件