自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 c++虚函数详解(你肯定懂了)

前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术...

2020-01-01 11:53:38

阅读数 20

评论数 0

翻译 ONVIF协议Profile A/Q/G/C/S

ONVIF协议Profile A/Q/G/C/SONVIF Profile A涵盖了常见的例行门禁控制功能,适用于负责授予和撤销员工凭证、创建和更新计划表,以及对系统内门禁控制权限进行更改的安保人员、接待员或人力资源专员等用户。强化用户端的功能性和系统管理功能,从而实现门禁控制市场的互联互通ONV...

2019-10-14 14:48:21

阅读数 17

评论数 0

转载 std::string::npos的使用

std::string::npos std::string::npos是一个常熟,它等于size_type类型可以表示的最大值,用来表示一个不存在的位置,类型一般是std::container_type::size_type。 定义 static const size_type ...

2019-06-24 14:14:36

阅读数 198

评论数 0

转载 Linux卷管理详解--PV(物理卷)--VG(卷组)--LV(逻辑卷)--PE(基本单元)

一、逻辑盘卷管理(LVM,Logical Volume Manager) 完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。那么我们可以通过逻辑盘卷管理(LVM,Logical Volume Manager)的方式来非常完美的实现...

2019-06-04 20:36:01

阅读数 164

评论数 0

转载 RAID磁盘阵列、热备盘的浅显整理

简介 RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。 ...

2019-06-04 19:19:56

阅读数 116

评论数 0

转载 SAN和NAS、ISCSI存储有什么区别,SAN和NAS设备哪个更好?

实际上SAN、NAS、DAS、FC、ISCSI、FC-SAN、IP-SAN等并不是同一类别的概念。SCSI、FC、NAS、ISCSI等概念指的是存储设备类型,DAS、NAS、SAN等指的是存储系统的网络架构。大家常提到的、主流的存储系统网络架构有DAS、NAS、SAN三种网络结构。其中SAN网络环...

2019-06-04 18:51:07

阅读数 1233

评论数 0

原创 UNIX高级编程总结-----进程环境

1、进程的终止方式 通常情况下,进程有八种终止方式(5种正常终止 + 3种异常终止) 正常终止: (1)main 的 正常 return (2)调用 exit 退出 (3)调用 _exit 和 _Exit (4)最后一个线程从启动历程返回 ...

2019-05-24 21:29:27

阅读数 33

评论数 0

转载 GCC -O 优化等级详解

GCC提供选项控制代码的优化等级: 这些选项可以实现不同程度的优化。 没有任何优化选项的话,编译时的目标是降低编译成本,并使调试产生预期的结果。语句是独立的:如果你使程序停止在语句之间设置的断点处,你可以改变任何变量的值或者改变程序计数器的值使程序执行任意函数中的语句并得到源代码中期望的结果。...

2019-05-24 20:50:57

阅读数 90

评论数 0

原创 UNIX高级编程总结-----标准I/O库 (二 行IO、二进制IO、格式化IO、定位流、内存流)

上一篇 五、每次一行的IO 上一篇总结到了标准IO库中,单个字符的IO操作。紧接上篇,Unix中提供了两个 以行为单位操作的IO: #include<stdio.h> char *fgets(char *restrict buf, int n,FILE* restri...

2019-05-24 19:33:31

阅读数 34

评论数 0

转载 在Linux中设置umask值以及umask函数

一、umask命令 umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。 对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。执行umask命令可以查...

2019-05-24 13:24:03

阅读数 182

评论数 0

原创 UNIX高级编程总结-----进程间通信(XSI IPC 总述)

在 XSI IPC 中,有三种IPC:消息队列、信号量 以及 共享内存,他们之间有许多相似之处。 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B再从内...

2019-05-20 17:16:27

阅读数 73

评论数 0

原创 UNIX高级编程总结-----进程间通信(FIFO---有名管道)

1、简介 对于普通的未命名pipe,两个不相关的进程是无法通信的。但是对于命名通道FIFO而言,即便是两个不相关的进程也可以实现进程间通信。 2、操作 FIFO FIFO在文件系统中表现为一个文件,大部分的系统文件调用都可以用在FIFO上面,比如:read,open,...

2019-05-20 17:14:13

阅读数 57

评论数 0

原创 UNIX高级编程总结-----进程间通信(管道)

管道是UNIX 系统中比较古老的一种,他有两个比较大的局限性(缺点)。 (1)历史上的通道都是半双工的(即数据只能往一个方向流)。某些系统是全双工的,但是由于大多数系统都是半双工的,为了提高可移植性,应该将通道视作半双工去使用。 (2)管道的只能使用在有公共祖先的进程之间。一般...

2019-05-16 15:20:16

阅读数 24

评论数 0

转载 linux网络编程:多播(组播)编程

什么是多播 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。 多播,也...

2019-05-13 13:53:30

阅读数 28

评论数 0

转载 IP地址的分类及范围

IP地址的分类及范围详解:A、B、C、D、E五类是如何划分的? 大家都知道现在的互联网使用的是32位地址,IPv6虽然也说了好些年,但大家都习惯接受IPv4的用法说法。IP以点分十进制表示,如172.16.0.0。地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址...

2019-05-13 11:41:00

阅读数 2237

评论数 0

转载 WCF-Discovery的协议基础:WS-Discovery

我们传统的服务调用的模式都是这样的:客户端在设计的时候预先知道目标服务的地址,并基于这个地址创建终结点对服务进行调用。而我们即将介绍的新特性是你在预先不知道目标服务的情况下,可以动态的探测可用的服务并调用之。就像我们的无线网卡可以动态的获取周围可用的Wifi网络一样。 服务发现解决了客户端...

2019-05-11 17:20:33

阅读数 133

评论数 0

转载 linux下进程的实际用户ID(有效组)和有效用户ID(有效组ID)

实际用户ID(实际组ID):标识当前用户(所属组)是谁,当用户登陆时取自口令文件。   有效用户ID(有效组ID):用来决定我们(当前进程)对文件的访问权(即实际该进程的是以那个用户运行的)。   一般情况下,进程的有效用户ID等于进程的实际用户ID,进程的有效用户组ID等于进程的实际用户组I...

2019-05-07 17:20:01

阅读数 151

评论数 0

原创 H264的基本原理(三)------ H264结构与码流

上一篇:H264的基本原理(二)------ H264编码原理 1、H264的结构图 2、H264的编码分层 H.264原始码流(裸流)是由一个接一个NALU组成,它的功能分为两层,VCL(视频编码层)和 NAL(网络提取层). (1)NAL层 (视频数据网络抽象层) ...

2019-05-06 13:48:19

阅读数 167

评论数 0

原创 H264的基本原理(一)------视频的基本知识

前几天在慕课网上看到了一个移动端音视频入门的视频,讲到H264编解码,方面的知识,故做一下笔记总结。 基础概念理解: 1、经过压缩后的帧分为:I帧,P帧和B帧: I帧:关键帧,采用帧内压缩技术。你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面) P帧:...

2019-05-06 11:29:04

阅读数 578

评论数 0

转载 H264的基本原理(二)------ H264编码原理

上一篇:H264的基本原理(一)------视频的基本知识 1、H264的压缩技术 H264压缩技术主要采用了以下几种方法对视频数据进行压缩。包括: 帧内预测压缩,解决的是空域数据冗余问题。该帧中的数据,比如:宽、高、颜色、光亮等,有一些人眼不敏感的,可以删除掉的,这称之为空域冗余数据。 ...

2019-05-06 11:27:53

阅读数 456

评论数 0

转载 RTP\RTCP 和 RTSP的区别

RTP(Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作。其目的是提供时间信息和实现流同步。但RTP通常使用UDP来传送数据。但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序...

2019-05-05 16:28:48

阅读数 341

评论数 0

原创 UNIX高级编程总结-----文件I/O (二)

上一篇 九、文件共享 内核使用了3种数据结构表示打开的文件,他们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响。以下是书中总结的三个部分: 如果说,两个单独的进程各自打开了同一个文件,其关系如下图: 由图3-8可以看出,两个进程打开同一...

2019-05-04 17:22:40

阅读数 27

评论数 0

原创 UNIX高级编程总结-----文件I/O (练习题)

内核中几乎所有的IO都会经过内核的块缓冲区。所以,所谓的“不带缓冲的IO”,是指在用户层的进程对读写不进行自动的缓冲。 fd1、fd2 和 fd3 指向的是同一个v节点表,fd1 和 fd2 指向的同一个文件表项。F_SETFL影响的是fd1指向的文件表项中的文件状态标志。F_SET...

2019-05-04 17:22:30

阅读数 35

评论数 0

原创 UNIX高级编程总结-----文件I/O (一)

一、文件描述符 1、对于内核而言,所有打开的文件都通过文件描述符来表示。文件描述符是一个非负整数,当打开或者创建一个文件时,内核会向进程返回一个文件描述符。当对文件进行操作时,会使用到文件描述符。UNIX系统shell把0与标准输入,1与标准输出,2与标准错误相关联。所以在unix中文件...

2019-05-03 16:10:22

阅读数 17

评论数 0

原创 UNIX高级编程总结-----标准I/O库 (三)

九、实现细节

2019-04-27 16:40:52

阅读数 13

评论数 0

转载 linux Shell的重定向

在网上搜索一圈,清楚明了的解释还是http://www.runoob.com/linux/linux-shell-io-redirections.html 结合理论,整理例子如下: 1、command > file ( >> 不覆盖,追加) @debian69:~/a...

2019-04-26 11:19:56

阅读数 18

评论数 0

原创 C语言常见的小算法 一(斐波那契数列、回文、质数检查、金字塔)

1、斐波那契数列 -----1 1 2 3 5 8 13 用常见的两种方式实现(非递归 和 递归): #include<stdio.h> /*递归实现*/ int Fibonacci_recursion(int num) { if(num <= 2) {...

2019-04-25 19:31:52

阅读数 64

评论数 0

原创 UNIX高级编程总结-----标准I/O库 (一 流、缓冲、打开流、读写流)

一、流 和 FILE对象 之前在文件I/O中提到的函数,都是围绕文件描述符的,当打开一个文件时,返回的是一个文件描述符,然后对该文件描述符进行后续的I/O操作。而对于标准I/O库,他们的操作是围绕着 流进行的。当用标准I/O库打开或创建一个文件时,我们就使一个流与一个文件相关联。 ...

2019-04-25 11:13:20

阅读数 26

评论数 0

原创 C语言关键字 restrict(一)

概念:   restrict,C语言中的一种类型限定符(Type Qualifiers),用于告诉编译器,对象已经被指针所引用,不能通过除该指针外所有其他直接或间接的方式修改该对象的内容。 渊源:   restrict是c99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对...

2019-04-24 17:53:52

阅读数 207

评论数 0

原创 linux高级IO-----readv、writev 以及 struct iovec

readv和writev函数用于在一次函数调用中读、写多个非连续缓冲区。有时也将这两个函数称为散布读(scatter read)和聚集写(gather write)。 #include<sys/uio.h> struct iovec { /* Starting address...

2019-04-22 16:01:27

阅读数 68

评论数 0

转载 跟我一起写 Makefile(七 函数)陈皓

使用函数 ———— 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。 一、函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下...

2019-04-18 13:29:44

阅读数 19

评论数 0

转载 跟我一起写 Makefile (六 条件判断)陈皓

使用条件判断 —————— 使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。 一、示例 下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。 libs_for_gcc = -lg...

2019-04-18 13:14:51

阅读数 10

评论数 0

转载 跟我一起写 Makefile (五 变量)陈皓

在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标”,“命令”或是Make...

2019-04-18 10:47:25

阅读数 17

评论数 0

转载 监视哨兵能让顺序查找时间减半! 真的吗?

在严奶奶版的《数据结构》一书中, 严奶奶引用了别的书的观点: 在顺序查找时(设表长>=1000), 引入监视哨兵, 可以减少几乎一半的查询时间。 理论上,引入监视哨兵, 的确可以优化时间。来测试一下, 看看引入监视哨兵的前后对比: #include<stdio.h> ...

2019-04-18 09:09:18

阅读数 54

评论数 0

转载 跟我一起写 Makefile (四书写命令)陈皓

书写命令 ———— 一、显示命令 通常,make会把其要执行的命令行在命令执行前输出到屏幕上。当我们用“@”字符在命令行前,那么,这个命令将不被make显示出来,最具代表性的例子是,我们用这个功能来像屏幕显示一些信息。如: @echo 正在编译XXX模块...... 当make执行时,会输...

2019-04-17 19:53:49

阅读数 26

评论数 0

转载 跟我一起写 Makefile (三 书写规则)陈皓

书写规则 ———— 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目...

2019-04-17 17:17:49

阅读数 42

评论数 0

转载 Linux下动态库和静态库详解

一、基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。 本文仅限于介绍li...

2019-04-17 15:51:17

阅读数 46

评论数 0

转载 gcc/g++编译参数详解

简介 gcc and g++现在是gnu中最主要和最流行的c & c++编译器 .gcc/g++在执行编译工作的时候,总共需要以下几步: 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生...

2019-04-17 15:21:40

阅读数 205

评论数 0

转载 跟我一起写 Makefile (二 总述)陈皓

Makefile 总述 ——————— 一、Makefile里有什么? Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成...

2019-04-17 14:55:02

阅读数 26

评论数 0

转载 跟我一起写 Makefile (一 Makefile概况)陈皓

概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解...

2019-04-17 14:03:30

阅读数 36

评论数 0

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