自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (3)
  • 收藏
  • 关注

原创 编译错误: call of overloaded ‘isnan(double&)’ is ambiguous isnan(x);

C++11编译报错测试#include <stdlib.h>#include <cmath>#include <stdio.h>using namespace std;int main(int argc, char** argv){ double number = 0; if (isnan(number)) { ...

2019-08-22 16:12:22 2916

原创 解决markdownPad2导出的pdf显示不出图片问题

markdown 工具markdown使用说明:解决markdownPad2导出的pdf显示不出图片问题:错误写法:![Alt text](/pic/webrtc_jiegoutu.png)这样导出pdf图片是显示不出来的正确写法:![Alt text](pic/webrtc_jiegoutu.png)链接前面不要加"/"即可...

2019-06-14 18:32:15 5012 2

原创 进程外部断开TCP连接的方式

总结五种断开TCP连接的方式1.防火墙规则可以设置iptables规则禁掉某个或者某些端口,但是对已建立的TCP连接无效,只是会让TCP收不到包。上层业务要是对长时间收不到数据有超时出来也可以实现断开连接功能关闭端口【iptable】sudo iptables -A INPUT -p tcp --dport $PORT -j DROPsudo iptables -A OUTPUT -p...

2019-06-06 14:20:03 7052

原创 Source Insight 4.0取消Overviews预览

Source Insight 4.0取消Overviews预览步骤:Options-->Preferences不勾选Overviews(based on file type)

2019-05-30 09:22:58 5620

原创 gdb调试strip过的程序、以及strip和en-strip使用

概述通常公司发布的可执行程序和动态共享库(.SO)里面的符号表都被移除了,所以每次遇到core dump的时候,都需要将符号表导入到/usr/lib/debug目录下。一直没弄明白为啥是这个目录,能不能是其他目录,这篇文章探索一下相关的知识,做个记录。我们要给我们生成的可执行文件和.SO瘦身,因为这样可以节省更多的磁盘空间,所以我们移除了debug信息,移除了符号表信息,同时我们还希望万一出事...

2019-04-30 13:58:09 4263 1

原创 Linux 2.6 以上版本timerfd定时器的实现

Linux 自 2.6 开始,可以使用timerfd来管理定时器提供的基于文件描述符的定时器接口#include <sys/timerfd.h>int timerfd_create(int clockid, int flags);int timerfd_settime(int fd, int flags, const struct itimerspec *new_value...

2019-04-16 16:20:44 205

原创 Windows下安装Anaconda3

下载Anaconda3下载地址:https://www.anaconda.com/distribution/#download-section可以选在python3.7或者python2.7版本,推荐选择3.7版本安装安装较为简单,基本都是下一步,为了避免不必要的麻烦,最后默认安装路径,具体安装过程为: 双击安装文件,启动安装程序这里我安装到了Anaconda3目录,也可以安装到默认...

2019-04-04 16:56:11 556

原创 windows下卸载 Anaconda3

首先找到Anaconda3的安装目录然后找Uninstall-Anaconda3.exe文件,如图:双击卸载即可PS:Anaconda3和Anaconda2是可以同时存在的,

2019-04-04 16:32:25 8125 1

原创 RTP/RTCP协议记录

RTP概述1.简单的多播音频会议。语音通信通过一个多播地址和一对端口来实现。一个用于音频数据(RTP),另一个用于控制包(RTCP)。2.音频和视频会议。如果在一次会议中同时使用了音频和视频会议,这两种媒体将分别在不同的RTP会话中传送,每一个会话使用不同的传输地址(IP地址+端口)。如果一个用户同时使用了两个会话,则每个会话对应的RTCP包都使用规范化名字CNAME(Canonical N...

2019-04-03 14:32:45 477

原创 hisiv300编译报错修改

现象:hisiv300编译过程中的错误:提示arm-hisiv300-linux-gcc: command not found或不是文件和目录原因:这是因为宿主机是64 位 而交叉编译器是针对32位的开发板制作的。所以要安装对应的32位库。我的linux宿主机是ubuntu 16.04 64位。安装命令:sudo apt install lib32z1-dev参考链接及其他错误:http...

2019-04-03 14:01:06 240

原创 git命令使用记录

1.创建版本库初始化一个Git仓库,使用git init命令。添加文件到Git仓库,分两步:第一步,使用命令git add ,注意,可反复多次使用,添加多个文件;第二步,使用命令git commit -m “说明”,完成。2.时光机穿梭要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用”git diff 文件名”可以查看修改内容。...

2019-04-03 13:54:25 142

原创 TCP连接数和文件描述符耗尽分析

client最大tcp连接数client每次发起tcp连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他tcp连接共享。tcp端口的数据类型是unsigned short,因此本地端口个数最大只有65536,端口0有特殊含义,不能使用,这样可用端口最多只有65535,所以在全部作为client端的情况下,最大tcp连接数为65535,...

2019-04-03 11:11:43 3686

原创 python使用scrt时间戳画图

scrt生成时间戳SecureCRT 日志添加时间戳(精确到毫秒)[%h-%m-%s.%t] 其中 %t 表示毫秒设置以及效果截图如下:python使用时间戳画图代码'''python帧间隔绘图脚本使用:1.首先需要安装Anaconda3(python是3+版本)2.然后添加环境变量3.然后cd 到Anaconda3安装目录,我的是C:\ProgramData\Anaco...

2019-04-03 08:54:20 1029

原创 两种IO多路复用方式对比Reactor and Proactor

两种IO多路复用方案:Reactor and Proactor概述一般情况下,I/O 复用机制需要事件分享器(event dispatch)。事件分享器的作用,即将那些读写事件源分发给各读写事件的处理者,就像送快递的在楼下喊: 谁的什么东西送了, 快来拿吧。开发人员在开始的时候需要在分享器那里注册感兴趣的事件,并提供相应的处理者(event handlers),或者是回调函数; 事件分享器在适...

2019-04-03 08:39:08 282

原创 window修改处理器类型

原因有时某些软件会判断处理器类型,然后才会执行操作。更换电脑是一个很麻烦的事,我们可以将注册列表中的处理器格式修改来解决这个问题修改具体修改位置如下图:例如将"Pentium® Dual-Core CPU E5500 @ 2.80GHz" 改成 “Intel® Core™ i5-2120 CPU @ 3.30GHz”...

2019-04-03 08:34:25 524

原创 Ubuntu挂载网络文件系统NFS

1.sudo apt-get install nfs-kernel-server 安装nfs。2.sudo mkdir /home/share/nfs 建立nfs共享文件夹。 执行 chmod 777 /home/share/nfs(以防出现权限问题)3.sudo vi /etc/exports 配置nfs。4.在文档的最后一行加入/home/song/nfs *(rw,s...

2019-04-03 08:27:49 1052

原创 设计模式 总结

设计模式后续将23中设计模式都总结出来update 2019.04.02单例模式懒汉式单例class SingleClass{public: static SingleClass* GetInstance() { if (!instance) instance = new SingleClass(); return instance; }private: ...

2019-04-03 08:22:50 123

原创 排序算法总结

排序排序算法平均时间复杂度最差时间复杂度空间复杂度数据对象稳定性冒泡排序O(n2)O(n2)O(1)稳定选择排序O(n2)O(n2)O(1)数组不稳定、链表稳定插入排序O(n2)O(n2)O(1)稳定快速排序O(n*log2n)O(n2)O(log2n)不稳定堆排序O(n*log2n)O(n*log2n)O...

2019-04-02 11:22:19 155

原创 线程同步注意事项

互斥器(mutex)互斥器主要是为了保护共享数据的,保证同一时刻只有一个线程可以操作用RAII手法封装mutex(创建、销毁、加锁、解锁)只用非递归的mutex(就是不可重入的mutex)不手动调用lock和unlock函数,参照第一点的方式在每次构造MutexLockGuard的时候,思考调用栈上已经持有的锁,防止加锁顺序不同导致死锁不使用跨进程的mutex,进程间通信尽量只用TC...

2019-04-02 11:20:18 284

原创 操作系统知识

进程与线程对于有线程系统:进程是资源分配的独立单位线程是资源调度的独立单位对于无线程系统:进程是资源调度、分配的独立单位进程之间私有和共享的资源私有:地址空间、堆、全局变量、栈、寄存器共享:代码段,公共数据,进程目录,进程 ID线程之间私有和共享的资源私有:线程栈,寄存器,程序寄存器共享:堆,地址空间,全局变量,静态变量linux使用的进程间通信方式管道...

2019-04-02 11:19:36 186

原创 封装临界区和条件变量

临界区的三个工具类MutexLock封装临界区,用RAII封装mutex的创建和销毁。MutexLock一般是别的类的数据成员MutexLockGuard封装临界区的进入和退出,即mutex的加锁和解锁。MutexLockGuard通常是一个栈上的变量,作用域刚好等于临界区。Condition封装wait和notify操作Uncopyable封装class Uncopyable{pu...

2019-04-02 11:18:37 341

原创 shared_ptr智能指针实现

实现说明1.要对解引用运算符和箭头运算符进行重载类似: T& operator*(); //解引用重载 T* operator->(); //箭头运算符重载2.自定义析构函数智能指针的成员变量有堆上分配出来的部分,默认的析构函数不能完全的释放资源3.定义拷贝构造函数和拷贝赋值运算符重载引用计数就是在上述函数中完成,所以需要自定义实现实现代码template...

2019-04-02 11:17:35 700

原创 C++智能指针对比

对比不同智能指针unique_ptrunique_ptr拥有一个对象。它是不可复制的,但支持所有权转让。主要是作为已弃用auto_ptr的替代品不能共享控制权,unique_ptr内部将拷贝构造函数和=运算符重载定义为私有的shared_ptrshared_ptrs在内部维护一个资源引用的计数,只有当引用计数为0是时,才会删除资源(析构)。weak_ptrshared_ptr每次拷贝...

2019-04-02 11:15:30 475

原创 使用pstack和gdb调试进程

使用pstack和gdb调试进程1. pgrep使用pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。用法:ps 参数选项 程序名常用参数-l 列出程序名和进程ID;-o 进程起始的ID;-n 进程终止的ID举例:pgrep css159782. pstackpstack 是 Linux(比如 Red Hat Linux 系统、...

2019-04-02 11:14:46 844

原创 C++全局变量内存分配和初始化顺序

C++全局变量内存分配和初始化顺序1.局部变量规则局部变量是在栈空间上,内存分配的顺序和代码的顺序是一致的2.全局变量规则2.1 初始化的全局变量一般来说,对于初始化的全局变量,编译器遇到之后知道这是一个定义,会马上分配空间,例如:int ib = 10;int ia = 10;这个分配的结果是:ia的地址在ib后面2.2 未初始化的全局变量对于未初始化的全局变量,编译器遇到之...

2019-04-02 11:13:50 1333

原创 Linux和windows下命令使用

Linux下命令1.查看进程idps -elf | grep name2.显示进程下所有线程方法一:PS在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。ps -T -p 方法二: Toptop命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以...

2019-04-02 11:13:06 402

原创 C++成员函数和成员变量存储说明

成员函数和成员变量存储说明C++中类的成员函数和成员变量的存储方式是不一样的。比如定义对象是系统会为对象分配存储空间,其中只为成员变量分配了存储空间,而成员函数则存放在公共的代码段中。如下图所示:因此可以看出,每个对象占用的存储空间只是该对象的数据部分(虚函数指针和虚基类指针也属于数据部分)所占用的存储空间,而不包括成员函数所占用的存储。测试代码代码如下,以下代码的输出结果是什么?cl...

2019-04-02 11:11:50 1337

原创 valgrind使用

0.命令使用valgrind --tool=memcheck --leak-check=full --error-limit=no --log-file=/system/bin/100.log /system/bin/tsmt.linux1.添加环境路径export PATH=$PATH:/data/valgrind/bin /...

2019-04-01 15:21:51 657

原创 select在异步(非阻塞)connect中的使用

select在异步(非阻塞)connect中的使用socket编程中非阻塞connet调用的处理可以借助select来解决,大致步骤如下:1. 将打开的socket设为非阻塞的Windows设置方式 unsigned long unblock = 1; ret = ioctlsocket(tSock, FIONBIO, (unsigned long *)&unbloc...

2019-04-01 15:18:58 1282

原创 PID和TID之间的区别

PID和TID之间的区别疑问:标准答案是PID用于进程,而TID用于线程。但是,我已经看到一些命令可以相互使用它们。例如,htop有一个PID列,其中显示了相同进程的线程的PID(具有不同的值)。那么PID什么时候代表线程或进程?解释首先:pid是进程标识符; tid是线程标识符。但实际上,内核并没有真正区分它们:线程和进程很像,但它与同一组的线程共享一些东西(内存,fds …)。...

2019-04-01 15:17:33 17108

原创 Linux下java使用JNI调用C++

Linux下java使用JNI调用C++1.JNI介绍JNI即Java Native Interface(Java本地接口),是一个协议,主要作用为:实现Java调用c/c++代码(类库),或者C/C++调用Java代码2.准备JNI先用javah,根据.java文件生成.h头文件,然后用C++实现这个接口2.1先在目录下创建JNI.java文件内容如下//JNI.java文件pu...

2019-04-01 15:15:24 2129 1

原创 Linux 线程函数

Linux 线程函数1.头文件#include<pthread.h>2.线程函数int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void *(*func) (void *), void *arg);int pthread_join (pthread_t tid, void ** status);...

2019-04-01 15:13:47 935

原创 java调用C++库崩溃排查

java调用C++库崩溃排查问题:java通过JNI方式调用C++库文件,运行时崩溃1.首先生成core文件/或者gdb attach到进程上//不限制core文件大小ulimit -c unlimited//core文件带pid和进程名 core在当前目录echo "core_%e_%p" > /proc/sys/kernel/core_pattern2.gdb查看core...

2019-04-01 15:11:33 2038

原创 gdb调试info threads只能显示一个进程问题

gdb调试info threads只能显示一个进程问题问题:在一个Linux环境中(dm81XX),调试多线程程序不正常,info threads看不到多线程的信息。查看过程:1.先用命令maintenance print target-stack看了一下target的装载情况,发现target"multi-thread"没有被装载,用GDB对GDB进行调试,发现在 函数check_for...

2019-04-01 15:09:29 1749

原创 实用性阅读指南

实用性阅读指南大岩俊之的作品《实用性阅读指南》,通过阅读书籍可以获得知识,但只有付诸行动才有效果。换言之,通过读书设定行动目标后最终得以实现目标之前,必须不断地深耕。读书的关键不在于“读了多少书”,而是“有过多少行动”。光想着应该多读书,最后什么都没留下,这样可不行。高效的读书不是试图全部理解 明白一本书重要内容内容之占本书的20%,这20%中最重要的仅有4%,也就是说,如果是200页的书...

2019-04-01 15:08:18 1230

原创 养成好习惯

养成好习惯1.管理好动机1.1 无论做什么事,无论是工作还是生活,人活在世,要有目标很多时候,我们没法坚持某个习惯,是因为没有给自己定好目标。牢记自己真正想要的目标,才会毫无顾忌,释放出所有力量。1.2 这个目标一定是你非常非常渴望达成的,把该考虑的统统考虑周到,任其他人怎么劝说或者打击,都不会对你产生丝毫影响2.管理好你的时间,减少、避免无效学习和工作每天早六晚十,这种生活是不是...

2019-04-01 15:05:41 194

原创 ubuntu 16.04安装 perf

安装tsh@tsh-virtual-machine:~/codeTest/learnPerf$ perf stat ./testThe program 'perf' is currently not installed. You can install it by typing:sudo apt install linux-tools-commontsh@tsh-virtual-mach...

2019-03-04 10:29:49 1918 1

原创 使用ntp同步hi3536时间

hi3536同步时间一、目的     hi3536使用ntp同步或更新时间二、准备1.下载源码(http://www.ntp.org/downloads.html)   我用的是ntp-4.2.8p11.tar.gz2.交叉编译工具:hisiv300-linux三、交叉编译1.解压源码包  tar -xzvf ntp-4.2.8p11.tar.gz2.进入目录和配置   cd ntp-4.2.8p...

2018-05-09 11:04:24 1038

转载 vmware的macos中apple ID一直登陆不上解决 ---(伪造smbios设备信息)

伪造smbios设备信息原文网址:http://www.insanelymac.com/forum/topic/292170-how-to-spoof-real-mac-in-vmware/page-1前提:网络正常,DNS 正常,网页能登录 https://www.apple.com适用于, osx 中登录 app store 一直在转圈的情况。原因:app store 会检查机器的smbios...

2018-05-07 11:04:02 28050 9

原创 解决Notepad++ Plugin Manager 显示 no new plugins available

plugin manager 安装后显示:no new plugins available修复方法如下:一、可能防火墙禁止Notepad++连接网络  (1)可以从控制面板-&gt;系统与安全-&gt;windows防火墙-&gt;允许应用通过windows防火墙 (2)查看notepad++后面对应的专用和公用是否打勾,如果找不到notepad++可以自行添加,从允许其他应用进去,找到你note...

2018-04-10 19:46:40 4569

PluginManagerPlugins.xml文件

解决Notepad++ Plugin Manager无法加载插件的方法。把PluginManagerPlugins.xml放在这个目录下C:\Users\你主机系统用户\AppData\Roaming\Notepad++\plugins\config 重新打开软件

2018-04-10

adb shell 和 iperf全平台工具(Android 、Windows、Linux)

adb shell 工具 iperf全平台工具(Android 、Windows、Linux)

2017-10-13

安徽省2012“达内杯”程序设计大赛题解

安徽省2012“达内杯”程序设计大赛题解,考试官方的题解。试题代码的官方给出的答案。

2012-07-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除