- 博客(34)
- 资源 (173)
- 收藏
- 关注
原创 Linux之进程的基本概念(进程,进程组,会话关系)
进程进程是操作系统的一个核心概念。每个进程都有自己唯一的标识:进程ID,也有自己的生命周期。一个典型的进程的生命周期如图4-1所示。进程都有父进程,父进程也有父进程,这就形成了一个以init进程为根的家族树。除此以外,进程还有其他层次关系:进程、进程组和会话。进程组和会话在进程之间形成了两级的层次:进程组是一组相关进程的集合,会话是一组相关进程组的集合。这样说来,一个进程会有如下ID:·PID:进...
2018-04-29 09:02:30 16102 1
原创 Linux之普通进程 后台进程 守护进程
一、普通进程与后台进程默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作。对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的:zsm@wilburUbun:~/application/zookeeper-3.4.8/bin$ ./zkServer.sh start &[1] 21304zsm@wi...
2018-04-28 17:56:55 2679 1
原创 Qt基础之三:Qt元对象系统
这个函数返回 QMetaObject 元对象类的实例,通过它,你就获得了 Qt 类的反射的能力:获取本对象的类型之类,而这一切,都不需要 C++ 编译器的 RTTI 支持。构建项目时,moc工具读取 C++ 源文件,当它发现类的定义里有 Q_OBJECT 宏时,它就会为这个类生成另外一个包含有元对象支持代码的 C++ 源文件,这个生成的源文件连同类的实现文件一起被编译和连接。这是一个空白的类,什么都没有实现。2.在类的头文件中声明 Q_OBJECT宏,使得类可以使用元对象的特性,如动态属性、信号与槽。
2018-04-28 15:49:51 11435 3
转载 GO语言学习资源整理
Go语言是谷歌发布的一套编程语言,因为其简单的部署、良好的并发性等特点受到很多企业的青睐,国外如Google、AWS、Cloudflare、CoreOS等,国内如七牛、阿里等都已经使用Golang开发其云计算相关产品。因此也有很多小伙伴选择Go语言,其实也对,毕竟大众化的语言Python、Java、C、C++等岗位竞争激烈,那么为何不选择一门竞争性相对而言比较小却也有前景的一门语言呢。那么要学习G...
2018-04-28 12:17:36 6343
原创 Linux之常用指令
玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Li
2018-04-28 11:14:03 508 1
原创 C++面试题之虚函数(表)实现机制
大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处!既然是C++的精髓, 那么我们有必要了解一下她的实现方式吗? 有必要! 既然C++是从C语言的基础上发展而来...
2018-04-27 20:01:25 11126 21
原创 C++面试题之TCP的三次握手与四次挥手
TCP是什么?具体的关于TCP是什么,我不打算详细的说了;当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续。它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。首先来看看OSI的七层模型:我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Lin...
2018-04-27 14:43:53 2709
原创 C++笔试题之求完全二叉树叶子节点数
C++笔试题之求完全二叉树叶子节点数:一、树的定义树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。树具有的特点有:(1)每个结点有零个或多个子结点(2)没有父节点的结点称为根节点(3)每一个非根结点有且只有一个父节点(4)除了根结点外,每个子结点可以分为多个不相交的子树。树的基本术语有:若一个结点有子树,那么该结点称为子树根的“双亲”,子树的根称为该结点的“孩子”。有相同双亲的结点互为“兄弟”。一...
2018-04-26 17:14:55 22851 5
原创 C++面试题之list和vector的区别
1.vector数据结构 vector和动态数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。2.list数据结构 list是由双向链表实现的,因此内存空间是不连续的。只能通过指针访问数据,所以list的随机存取非常没有效率,时间复...
2018-04-25 20:24:22 5066
原创 Effective C++笔记之八:template中的class、typename关键字
template 声明式中,class 和 typename 这两个关键字意义完全相同template class Widget;template class Widget;有时候你一定要用 typename。template void print2nd(const C& container) { if (container.size() >= 2) {
2018-04-24 20:21:38 2775
原创 C++笔试题之字节对齐
struct的对齐问题是由一道笔试题想到的,笔试题如下:#include using namespace std;typedef union student{ char name[10]; long sno; char sex; float score [4];} STU;void main (){ STU a[5]; cout <<
2018-04-24 17:35:54 2408
转载 libevent学习之六:VS2013调试libevent源码
今天就介绍一下vs2013 下面调试libevent源码。不需要创建sln解决方案,只需要创建工程,包含源码目录即可源码调试。1、手工添加print-winsocke-errors.c文件,不然nmake编译的时候会报错。print-winsocke-errors.c源代码程序:#include #include #include #inc......
2018-04-23 14:37:28 1595
原创 C++之std::vector元素去重
这种方法是结合sort和unique函数将相邻且重复的元素放到vector的尾部,然后返回指向第一个重复元素的迭代器再用erase函数擦除从这个元素到最后元素的所有的元素。这种方法是简单的利用set的特性,C++中的std::set是基于红黑树的平衡二叉树的数据结构实现的一种容器,因为其中所包含的元素的值是唯一的,因此主要用于去重和排序。
2018-04-17 11:26:18 12951 1
原创 Qt之实现图片或按钮等控件的倒影效果
倒影效果在轮播图中用得比较多,当然音乐频谱中也有用到。通常的做法是将原图垂直镜像,然后在原图下面绘制该镜像图用Qt获取镜像图比较方便,调用QImage的mirrored方法就行,该方法有两个参数,分别可以控制水平或(和)垂直镜像获取垂直镜像的代码如下所示如果给按钮等控件绘制倒影,需要先获取按钮的图像,这一点用Qt也很好实现,如下所示接着将pix做垂直镜像就行如果镜像图不做任何处理,最基础的倒影效果如下图所示 上图中的倒影效果比较生硬,就好比说大树在水中的倒影,并不是和岸上的书一毛一样,
2018-04-13 16:15:28 3944 1
原创 kafka之为topic增加partition
操作指令如下:将topic gome中的partition增加到10个bin/kafka-topics.sh --alter --zookeeper 10.112.179.12:2181 --partitions 10 --topic gome具体参数的含义可以通过执行bin/kafka-topics.sh来查看,如下所示:
2018-04-12 15:25:40 11313 1
原创 如何通过外部电脑访问kafka服务器
在kafka的编译和使用中说明了kafka环境的搭建和本机自测。但是如果在外部电脑上启动生产者和消费者,并不能进行消息的发布和订阅,会报解析服务器hostname失败的错误。解决的方法有两个:1.将服务器的IP和计算机名信息添加到外部电脑的/etc/hosts文件,添加方法参考:https://blog.csdn.net/caoshangpa/article/details/798
2018-04-11 20:01:34 7839 3
原创 kafka启动时报错:java.net.UnknownHostException: Name or service not known
今天在用下面的指令启动kafa的时候报错了:# bin/kafka-server-start.sh config/server.properties &错误信息如下:[2018-04-11 16:27:31,185] ERROR [KafkaServer id=0] Fatal error during KafkaServer startup. Prepare to shutdown (
2018-04-11 17:09:55 21459 2
原创 Qt基础之四十四:qmake构建原理
qmake构建原理。当一个项目很小的时候,直接使用编译器、链接器等编译工具,就可以把代码构建成程序。当项目越来越大时,除了需要调用编译工具编译程序,还需要做很多事情,例如:☆配置编译工具☆设置编译选项☆添加头文件☆添加第三方库☆添加资源文件☆自动增量编译,自动检测文件修改☆链接程序☆软件自动部署☆自动化测试等等完成这些步骤,需要调用几个甚至几十个工具来完成。这导致构建软件的任务变得非常繁琐,如果每次构建都需要开发者手动逐个调用工具完成,就会产生大量的、机械的重复性劳动。
2018-04-04 16:58:24 10465 1
原创 Debug和Release
编译器有这么多优化级别,Debug版本和Release版本其实就是优化级别的区别,Debug称为调试版本,编译的结果通常包含有调试信息,没有做任何优化,方便开发人员进行调试,Release称为发布版本,不会携带调试信息,同时编译器对代码进行了很多优化,使代码更小,速度更快,发布给用户使用,给用户使用以更好的体验,特殊情况下,可以看到两种模式在运行速度上有数量级的差距。Debug模式下在内存分配上有所区别,在我们申请内存时,Debug模式会多申请一部分空间,分布在内存块的前后,用于存放调试信息。
2018-04-04 15:12:58 12895
原创 OpenWRT:操作GPIO报错wirte error:resource busy
OpenWRT:操作GPIO报错wirte error:resource busy
2018-04-04 14:16:41 2119 1
原创 Qt之TCP保活机制与断网重连
Qt之TCP保活机制与断网重连QTcpSocket能够检测到Socket的连接与断开状态,并触发相关信号,我们只需要关联信号与槽就能够知道连接状态。还有一些特殊情况是无法触发QTcpSocket::disconnected信号,比如说:网线突然拔了、对端设备突然停电等。这类情况由于对端socket未正常调用close()方法而导致的。我们可以定义一个心跳包去定期检查对端的存活状态,这种做法在协议还未指定的初期是比较适合的,客户端与服务端制定一套心跳请求与应答机制来判断对端的存活状态。
2018-04-04 11:34:42 3270 1
原创 C++笔试题之最长不含重复的子字符串
题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。提示:s 由英文字母、数字、符号和空格组成。
2018-04-03 12:29:52 7946 1
转载 Kafka设计解析(一)- Kafka背景及架构介绍
本文转发自技术世界,原文链接 http://www.jasongj.com/2015/03/10/KafkaColumn1摘要 Kafka是由LinkedIn开发并开源的分布式消息系统,因其分布式及高吞吐率而被广泛使用,现已与Cloudera Hadoop,Apache Storm,Apache Spark集成。本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对...
2018-04-03 08:44:06 614
转载 使用VS2013或VS2015生成UML类图
1.UML简介Unified Modeling Language (UML)又称统一建模语言或标准建模语言。简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他们的主要用途简介:1.用例图:对系统的使用方式分类.2.类图:显示类和它们的相互关系。3.对象图:只显示对象及它们的相互关系。4.活动图:显示人或对象的活动,
2018-04-03 08:40:01 38703 2
转载 StarUML逆向工程: 通过代码生成类图
在软件工程中, 通过都是先了详细设计, 然后按照详细设计来进行开发。在编写详细设计的时候,通常都会画一些类图、时序图、流程图等等UML设计, 然后通过uml类图生成代码, 这个属于正向工程生成代码, 然而在实际开发中, 很可能是先完成了代码开发, 再来补充一大堆的文档, 这是就需要通过代码来生成类图, 这个就属于逆向工程了, 下面进入主题, 如何利用staruml通过代码生成类图。(需要注意的是只
2018-04-03 08:36:22 17942 2
翻译 WebRTC笔记之十四:将WebRTC用于多人音视频通信
WebRTC非常适合点对点(即一对一)通信。 但是,当我与客户讨论超出一对一(即一对多或多对多)的解决方案和服务时,问题就出现了:“我应该采用哪种架构?”。 有些服务提供商希望复用他们网络中的组播支持(我们正在为此尝试做一些实验),有些正在探索基于联播(simulcast)的解决方案,还有一些正在考虑像MCU /Mixer这样的集中式解决方案,而其中一些 只是愿意通过使用基于Mesh的技术将负担放
2018-04-02 17:11:46 7676 2
原创 使用librdkafka的C++接口实现简单的生产者和消费者
一.编译librdkafka环境:Fedora 20,32位依赖:pthreads(必选),zlib(可选),libssl-dev(可选),libsasl2-dev(可选)先查看自己的linux上是否安装了pthreads,指令如下:# locate libpthread因为我之前安过了,所以可以直接编译librdkafka,没有安的下个pthreads的源码——con
2018-04-02 10:55:17 23486 6
20种数据结构和算法的C++实现
2017-11-17
Qt下用QSplitter实现滑动窗口
2017-11-16
QML实现图像处理,包括浮雕、锐化等效果
2017-11-14
WebRTC学习之四:最简单的语音聊天
2017-01-10
WebRTC学习之三:录音和播放
2016-12-26
Qt国际化(I18N)
2023-12-31
QHVlcPlayer.rar
2021-02-27
Qt+libVLC+QWidget渲染
2021-02-27
Qt调用libVLC实现播放器
2021-02-26
TestUI.rar
2021-02-09
QHOpenGLPlayer.rar
2021-01-10
基于Qt和SDL2播放PCM
2021-01-05
Qt5版NeHe OpenGL教程6-10
2018-05-17
Qt5版Nehe OpenGL教程1-5
2018-05-14
Qt调用OpenGL API实现彩色旋转立方体
2018-05-09
MyTcpClient
2018-03-16
Boost.Asio C++ Network Programming随书源码
2018-01-29
Boost.Asio C++ Network Programming(高清,带书签,可复制)
2018-01-29
Effective Modern C++ 英文原版(带书签)
2018-01-27
++i和i++哪个更高效
2023-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人