自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 收藏
  • 关注

转载 linux中pthread_join()与pthread_detach()

1.linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。只有当你调用了pthread_join之后这些资源才会被释放。若是unjoinable状态的线程,这些资源在线程函数退出时或p...

2019-03-22 15:54:00 252

转载 DMA 内存存取原理

DMA直接内存存取原理   DMADMA直接内存存取原理是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。   要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的利用率。   但是采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,...

2018-12-28 11:20:00 629

转载 qt程序编译错误:could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’

linux下安装Qt5.7后添加qmake环境变量后出现错误 执行:qmake -v出现错误:qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’: No such file or directory分析: qtchooser默认选择路径中没有指向qmake路径解决方法:cd /usr/lib...

2018-12-21 16:12:00 1111

转载 安装 yaml-cpp,MP4V2

一、在ubuntu上安装yaml-cpp的过程:git clone https://github.com/jbeder/yaml-cpp.git进入yaml-cpp目录后,mkdir buildcd buildcmake -DBUILD_SHARED_LIBS=ON ..makesudo make install安装后,头文件位于:/usr/local/include库...

2018-12-12 13:55:00 171

转载 安装cmake 和 opencv 4.0.0

1、安装cmake3.5.1或更新的版本 安装gcc-c++:sudo apt-get install build-essential (或者直接执行这两条命令sudo apt-get install gcc,sudo apt-get install g++) wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz cd cmake-3...

2018-12-07 13:47:00 233

转载 windows系统,boost编译安装

windows系统,boost编译安装vs20171、下载https://www.boost.org/users/download/下载windows对应的zip包解压2、配置vc环境变量我的是:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.15.26726\bi...

2018-12-05 18:42:00 162

转载 messageQ 消息队列

之后就是对MessageQ的打开,关闭, 消息的发送和接受。MessageQ_create(),MessageQ_delete(); 对消息的创建和删除。MessageQ_open(); MessageQ_close(); 对消息通道的打开和关闭。MessageQ_put();MessageQ_get();消息的接受和发送。注意:1.一个消息队列可以有多个写者,但是只...

2018-11-27 19:29:00 631

转载 fflush 和 fsync 的区别

int fflush(FILE *stream);If stream points to an output stream or an update stream in which the most recent operation was not input, the fflush function causes any unwritten data for that stream t...

2018-11-20 17:11:00 451

转载 unistd.h

unistd.h是unix std的意思,是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型unistd.h在unix中类似于window中的windows.h!#ifdef WIN32#include <windows.h>#else#include <unistd.h>#endif...

2018-11-07 14:49:00 365

转载 ffmpeg

基本上来说,处理视频和音频流是很容易的:10 从video.avi文件中打开视频流video_stream20 从视频流中读取包到帧中30 如果这个帧还不完整,跳到2040 对这个帧进行一些操作50 跳回到20转载于:https://www.cnblogs.com/pjl1119/p/9915100.html...

2018-11-06 14:30:00 50

转载 H264视频压缩算法

H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。但为了用好H264,我们还是要对H264的基本原理弄清楚才行。今天我们就来看看H264的基本原理。H264概述H264压缩技术主要采用了以下几种方法对视频...

2018-11-06 13:49:00 1895

转载 Makefile 系统论述

该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef...

2018-10-31 16:33:00 112

转载 Makefile 笔记

Makefile中的ifeq多条件判断ifeq ($(TARGET_ARCH), arm) LOCAL_SRC_FILES := ...else ifeq ($(TARGET_ARCH), x86) LOCAL_SRC_FILES := ...else ifeq ($(TARGET_ARCH), mips) LO...

2018-10-31 11:06:00 114

转载 configure、make 和 make install 的区别

Linux编译安装中configure、make和make install各自的作用./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile中读取指令,然后编译。make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。AUTOMA...

2018-10-30 10:47:00 285

转载 Linux 安装 ffmpeg

在安装ffmpeg之前,需要先安装一些必需组件。包括但不限于以下组件(有的系统里面可能已经安装过)首先在根目录下创建:ffmpeg_sources1、Yasmsudo apt-get install yasmcd ~/ffmpeg_sourceswget http://www.tortall.net/projects/yasm/releases/yasm-1....

2018-10-30 10:40:00 80

转载 libdl.so 动态库加载、查找

使用libdl.so库动态库加载原理动态库中函数的查找已经封装成 libdl.so,有4个函数:dlopen : 打开一个动态库dlsym : 在打开的动态库里找一个函数dlclose : 关闭动态库dlerror : 返回错误转载于:https://www.cnblogs.com/pjl1119/p/9814910.html...

2018-10-19 10:22:00 616

转载 gcc 的参数 -Wall -O2 -ansi

-Wall生成所有警告信息-o test (小写字母o)是说输出为test-ansi 是使用c++98标准去编译代码。  关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inline typeof关键字,以及UNIX,vax等预处理宏)-O0 (大写字母O)-O1 -O2 -O3   编译器的优化选项的4个级...

2018-10-16 19:11:00 445

转载 makefile中的wildcard 、patsubst、

在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。一般...

2018-10-16 18:58:00 104

转载 makefile中 = := += 的区别

  = 是最基本的赋值  := 是覆盖之前的值  ?= 是如果没有被赋值过就赋予等号后面的值  += 是添加等号后面的值  1、“=”  make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:   x = foo  y = $(x) bar  x = xyz   在上例中,y的值将会是...

2018-10-16 17:17:00 79

转载 Makefile 宏定义 -D

一、GCC编译器中使用:-D macro=string,等价于在头文件中定义:#definemacrostring。    例如:-D TRUE=true,等价于:#defineTRUEtrue-D macro,等价于在头文件中定义:#definemacro1,实际上也达到了定义:#definemacro的目的...

2018-10-16 16:54:00 3660

转载 -L、-rpath和-rpath-link的区别

链接器ld的选项有 -L,-rpath 和 -rpath-link,看了下 man ld,大致是这个意思:-L:: “链接”的时候去找的目录,也就是所有的 -lFOO 选项里的库,都会先从 -L 指定的目录去找,然后是默认的地方。编译时的-L选项并不影响环境变量LD_LIBRARY_PATH,-L只是指定了程序编译连接时库的路径,并不影响程序执行时库的路径,系统还是会到默认...

2018-10-16 16:39:00 134

转载 MakeFile中export的使用

在shell中,可以使用export修改当前进程的环境变量。 例如:export PATH=.:$PATH 将当前路径加入可执行文件查找路径(PATH)中,这样你就不要敲“./excutable” 来执行当前路径中的excutable。而只需要键入 “excutable” 就行了。 make可以执行shell命令,当然也包括export。同时,make本身...

2018-10-16 16:24:00 128

转载 gcc 与 g++的区别

先描述一下今天遇到的错误:因为以前写程序的时候,写的都是cpp文件,然后就直接使用g++编译,没出错,也就没有在意过这些问题,今天有一个c文件,但里面包含后STL中的vector语法,想着使用gcc来编译,结果报错了,报错是:找不到vector。什么是gcc / g++首先说明:gcc 和 GCC 是两个不同的东西GCC:GNU Compiler Collection(G...

2018-10-12 23:12:00 66

转载 accept发生在三次握手之后

accept发生在三次握手之后转载于:https://www.cnblogs.com/pjl1119/p/9732687.html

2018-09-30 17:15:00 188

转载 读写锁 与 互斥锁

相交进程之间的关系主要有两种,同步与互斥。所谓互斥,是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它 们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。  显然,同步是一种更为复杂的互斥,...

2018-09-30 17:15:00 124

转载 观察者模式的优点和缺点

观察者模式的效果有以下的优点:第一、观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者角色所知道的只是一个具体观察者列表,每一个具体观察者都符合一个抽象观察者的接口。被观察者并不认识任何一个具体观察者,它只知道它们都有一个共同的接口。由于被观察者和观察者没有紧密地耦合在一起,因此它们可以属于不同的抽象化层次。如果被观察者和观察者都被扔到一起,那么这个对象必然跨越抽象化和...

2018-09-30 08:24:00 1722

转载 TCP可靠传输:校验和,重传控制,序号标识,滑动窗口、确认应答

Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输应答码:ACKTCP的滑动窗口机制 TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议。既然是一个可靠的传输协议就需要对数据进行确认。TCP协议里窗口机制有2种:一种是固定的窗口大小;一种是滑动的窗口。窗口大小就是我们一次传输几个数据。对所有数据帧按顺序赋予编号,...

2018-09-29 00:19:00 362

转载 各种变量在内存中的高地址低地址

先确认一下这里“低地址高地址”的定义,这里并不是指的大端小端中的地址高低,而是内存中的地址1、全局变量先定义的全局变量位于低地址,后定义的位于高地址。2、栈中变量(栈中变量指的是由编译器自动分配释放的变量)由于栈是往低地址生长的,所以先声明的变量位于高地址。3、堆中变量(堆中变量指的是由程序员分配释放的变量,例如new,malloc)结论:由...

2018-09-29 00:14:00 1433

转载 Windows消息机制

Windows消息机制详解消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的...

2018-09-28 21:01:00 130

转载 new和malloc的区别

char* p0 = (char*)malloc(16); char* p1 = new char; char* p2 = new char(16); //初始化为16 char* p3 = new char[16]; //申请内存大小为16字节,对应 delete [] p3;0、属性new/delete是C++...

2018-09-28 12:01:00 105

转载 map的key 为指针

STL中map的key能否用char *呢?当然可以!在程序中需要用到一个map,本来是这样写的,map<string, int> mapStr;为了追求效率,把string改成了char *,map<char *, int> mapStr;结果呢?可想而知,每次放进去的是指针,当查找的时候就出问题了,总是找不到。因为key中存放的是指针,当然...

2018-09-28 11:09:00 653

转载 MFC消息机制(与C中全局回调函数的区别)

MFC消息机制:转载于:https://www.cnblogs.com/pjl1119/p/9717478.html

2018-09-28 11:02:00 316

转载 派生类时使用private的目的 《私有派生》

第一:继承方式是public的情况下:当成员是public的时候,派生类对象可以直接调用基类的这个方法和数据,当数据是private的时候,派生类的对象不能直接调用之,可以通过调用基类的方法来访问该数据,当数据是protect的时候,派生类对象可以直接调用之第二、继承方式是private的时候:派生类的派生类不能调用他从基类继承过来的方法。B : priva...

2018-09-28 10:02:00 501

转载 C++11之 std::atomic (不用锁实现线程互斥)

std::atomic_flag  std::atomic_flag是一个原子的布尔类型,可支持两种原子操作:test_and_set, 如果atomic_flag对象被设置,则返回true; 如果atomic_flag对象未被设置,则设置之,返回falseclear. 清楚atomic_flag对象  std::atomic_flag可用于多线程之间的同...

2018-09-27 21:40:00 621

转载 C++11 并发之std::thread std::mutex

https://www.cnblogs.com/whlook/p/6573659.html(https://www.cnblogs.com/lidabo/p/7852033.html)C++:线程(std::thread)1.创建一个线程  创建线程比较简单,使用std的thread实例化一个线程对象就创建完成了,示例:#include <io...

2018-09-27 21:35:00 110

转载 单例模式优缺点

优点(1) 由于单例模式在内存中只有一个实例,减少内存开支,特别是一个对象需要频繁地创建销毁时,而且创建或销毁时性能又无法优化,单例模式就非常明显了(2) 由于单例模式只生成一个实例,所以,减少系统的性能开销,当一个对象产生需要比较多的资源时,如读取配置,产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。(3) 单例模式可以避免...

2018-09-27 20:36:00 396

转载 hash与平衡二叉树的区别

哈希表的定义:哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方https://blog.csdn.net/duan19920101/article/details/51579136转载于:https://www.cnblogs.com/pjl1119/p/9715358.html...

2018-09-27 20:24:00 379

转载 static与全局变量区别

作用域不同:全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。拓展资料全局变量也称为外部变量,它是在 函数外...

2018-09-27 16:43:00 519

转载 shell 脚本语言

shell 脚本语言:转载于:https://www.cnblogs.com/pjl1119/p/9710886.html

2018-09-27 00:09:00 78

转载 Mysql

Mysql 技巧:转载于:https://www.cnblogs.com/pjl1119/p/9710884.html

2018-09-27 00:08:00 50

空空如也

空空如也

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

TA关注的人

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