自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秋叶原 && Mike || 麦克

比你优秀的人往往比你更努力!!!!

  • 博客(386)
  • 资源 (106)
  • 收藏
  • 关注

原创 Qt 5.5.0 Windows环境搭建

1)访问官方网站:http://www.qt.io/download-open-source/2)选择离线安装包3)选择 Windows 离线安装包4)安装软件包5)测试环境6)如何直接打开 Windows 下 Qt 应用程序?

2015-07-14 20:41:30 11223 2

原创 C++入门学习——标准库 string 类的使用

在 C++ 中,为了方便处理字符串,引入了 string 类。string 类型支持长度可变的字符串。使用 string 之前,必须包含相应的头文件,string 属于 std 命名域的,因此需要通过命名限定:#include using std::string; //using namespace std;string 类提供了向前和向后遍历的迭代器 iterator,迭代器提供了访问各个字符的语法,类似于指针操作,迭代器不检查范围。用 string::iterator 或 string::c

2015-07-13 23:01:12 1880

转载 年轻人打拼,就必须放弃健康吗?

第1,「别骗自己不需要睡眠」。无论中西医都告诉我们:睡眠很重要,包括年轻人,和那些自认为”睡五个小时就够“的人。睡眠是最好恢复免疫力的方式,尤其11点到3点一定要睡。半夜醒来,不要起床,不要碰手机,刷微信。第2,「不要把吃饭当成喂饲料」。很多创业者和企业家,边开会边吃饭像喂饲料一样,「塞进嘴里都不知道吃了什麽」,又常吃Pizza丶汉堡等不太健康的食物。这么做很不健康,最好能吃饭时静下来,才会良好消化。若真的改不掉「喂饲料」的饮食方式,「那就喂蔬菜吧」。

2015-07-05 14:26:53 1447

原创 Qt 处理XML 文档的三种方式简介——DOM、SAX、流处理

XML(eXtensible Markup Language)是一种通用的文本格式,也叫可扩展标记语言。被广泛运用于数据交换和数据存储(虽然近年来 JSON 盛行,大有取代 XML 的趋势,但是对于一些已有系统和架构,比如 WebService,由于历史原因,仍旧会继续使用 XML)。XML 由 World Wide Web Consortium(W3C)发布,作为 SHML(Standard Generalized Markup Language)的一种轻量级方言。XML 语法类似于 HTML,与后者的主

2015-07-05 00:25:35 1988

翻译 Linux主流桌面环境简单介绍

概述:本文收集了在Linux操作平台下的几大最常用的桌面环境,分析了它们的利弊,方便你作出正确的选择。1)Unity是由Ubuntu系统的开发公司Canonical所开发的,用于它们的旗舰发行版。它运行在Gnome桌面环境上,并使用Gnome应用程序的所有内核。2)Gnome在与传统UI分道扬镳之后构建了更加现代化的桌面外观Gnome Shell 。Gnome以简洁著称,即便现在的Gnome Shell摒弃了以前的部分特性,但这一点仍然被继承了下来。通过第三方的扩展程序的帮助Gnome Shell的功能

2015-07-04 09:58:48 5099

转载 QTcpSocket 发送和接收数据的几种方法

QTcpSocket 提供的几种接收和发送数据方法:write ( const char *, qint64 ) : qint64write ( const char * ) : qint64write ( const QByteArray & ) : qint64writeData ( const char *, qint64 ) : qint64read ( char * data

2015-06-28 11:48:45 13857

原创 QWidget 直接派生类的样式表不起作用的解决办法

从 QWidget 派生一个窗口,使用 stylesheet 设置背景,designer 设置没有问题,或者,通过 setStyleSheet() 设置,代码操作是正确的,编译运行后,却没有背景。原因是,QWidget 的 paintEvent() 是空的,而样式表要通过 paint 被绘制到窗口中,我们需要重新写 paintEvent() 函数,才能够真正实现继承。

2015-06-26 20:22:18 3796

原创 C++入门学习——标准模板库之vector

vector(向量容器),是 C++ 中十分有用一个容器。vector 之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector 是一个能够存放任意类型的动态数组,能够增加和压缩数据。使用 vector 之前,必须包含相应的头文件,vector 属于 std 命名域的,因此需要通过命名限定:#include using std::vect

2015-06-25 16:21:38 4134

原创 C++入门学习——模板

现在,我们再重新审视上述的 max() 函数,它们都具有同样的功能,即求两个数的最大值,能否只写一套代码解决这个问题呢?这样就会避免因重载函数定义不全面而带来的调用错误(如,我们分别定义了 char a,b; 那么在执行 max(a,b) 时 程序就会出错,因为我们没有定义char 类型的重载版本)。为解决上述问题 C++ 引入模板机制:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。

2015-06-24 20:33:51 1531

转载 Qt程序运行居中显示

Qt 程序运行居中显示最简单的办法就是在 main.cpp 中添加如下代码:#include #include // desktop#include "mainwindow.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show();

2015-06-23 19:32:51 1795

原创 Qt 与 Qt Creator 简介

Qt 是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt Creator 是全新的跨平台 Qt IDE(集成开发环境),可单独使用,也可与 Qt 库和开发工具组成一套完整的 SDK(软件开发工具包)。 其中包括:高级 C++ 代码编辑器,项目和生成管理工具,集成的上下文相关的帮助系统,图形化调试器,代码管理和浏览工具。

2015-06-20 11:38:02 11975

转载 Qt 5框架介绍

Qt 基本模块中包含了Qt核心基础的功能,这个我们会在后面详细讲解;而 Qt 扩展模块包含了以前 QtMobility 中的一些与移动有关的模块,如蓝牙 QtBluetooth、传感器 QtSensors 等。还包含了以前 Qt 4 中的一些模块,例如 QtDBus、QtXML、QtScript 等。除此之外,还新添了一些模块,例如图形效果 QtGraphicalEffects、串口 Qt Serial Port、还有出现在商业版中的 Qt3D 等。这些模块都是有特殊用途的,它们很多需要在特殊的平台上才

2015-06-18 23:19:53 5992

原创 Qt 4 项目迁移到 Qt 5 问题

问题二:Qt 5 使用原来的 QT4项目时 QWebView 、QWebFrame 等类无法编译通过。出现原因:QWebView 、QWebFrame、QWebPage、QWebInspector 等这些类被单独移到了 QtWebKitWidgets 模块,不再在 QtWebKit 模块当中;而 QWebHistory 等类仍然保留在 QtWebkit 模块中。解决方法:使用到 QWebPage 等 webkit 相关可视部件的,Qt5 单独放到了QtWebKitWidgets 模块中,所以在使用了

2015-06-18 22:48:28 1799

原创 Linux系统编程——进程同步与互斥:POSIX有名信号量

在 POSIX 标准中,信号量分两种,一种是无名信号量,一种是有名信号量。无名信号量一般用于线程间同步或互斥,而有名信号量一般用于进程间同步或互斥。它们的区别和管道及命名管道的区别类似,无名信号量则直接保存在内存中,而有名信号量要求创建一个文件。前面我们学习了无名信号量的使用(详情请看《无名信号量》),这里我们学习有名信号量的使用。

2015-06-15 16:24:07 198450 5

原创 Linux系统编程——线程同步与互斥:POSIX无名信号量

信号量广泛用于进程或线程间的同步和互斥,信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。编程时可根据操作信号量值的结果判断是否对公共资源具有访问的权限,当信号量值大于 0 时,则可以访问,否则将阻塞。PV 原语是对信号量的操作,一次 P 操作使信号量减1,一次 V 操作使信号量加1。信号量主要用于进程或线程间的同步和互斥这两种典型情况。

2015-06-15 00:25:35 116831 3

原创 Linux系统编程——线程同步与互斥:互斥锁

在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。这个过程有点类似于,公司部门里,我在使用着打印机打印东西的同时(还没有打印完),别人刚好也在此刻使用打印机打印东西,如果不做任何处理的话,打印出来的东西肯定是错乱的。实际上,打印机是有做处理的,我在打印着的时候别人是不允许打印的,只有等我打印结束后别人才允许打印。这个过程有点类似于,把打印机放在一个房间里,给这个房间安把锁,这个锁默认是打开的。当 A 需要打印时,他先过来检查这把锁有没有锁着,没有的话就进去,同时上锁在房间里打印。而在这时,刚

2015-06-14 22:36:52 192630 8

转载 Linux系统编程——线程池

线程池和传统的一个用户对应一个线程的处理方法不同,它的基本思想就是在程序开始时就在内存中开辟一些线程,线程的数目是固定的,他们独自形成一个类,屏蔽了对外的操作,而服务器只需要将数据包交给线程池就可以了。当有新的客户请求到达时,不是新创建一个线程为其服务,而是从“池子”中选择一个空闲的线程为新的客户请求服务,服务完毕后,线程进入空闲线程池中。如果没有线程空闲的话,就将数据包暂时积累, 等待线程池内有线程空闲以后再进行处理。通过对多个任务重用已经存在的线程对象,降低了对线程对象创建和销毁的开销。当客户请求 时,

2015-06-14 13:48:36 8430 2

原创 Linux系统编程——线程同步与互斥:读写锁

当有一个线程已经持有互斥锁时,互斥锁将所有试图进入临界区的线程都阻塞住。但是考虑一种情形,当前持有互斥锁的线程只是要读访问共享资源,而同时有其它几个线程也想读取这个共享资源,但是由于互斥锁的排它性,所有其它线程都无法获取锁,也就无法读访问共享资源了,但是实际上多个线程同时读访问共享资源并不会导致问题。在对数据的读写操作中,更多的是读操作,写操作较少,例如对数据库数据的读写应用。为了满足当前能够允许多个读出,但只允许一个写入的需求,线程提供了读写锁来实现。

2015-06-14 10:23:02 38819 4

原创 Qt 5.4.2 Linux环境搭建

1)访问官方网站:http://www.qt.io/download-open-source/2)选择离线安装包3)选择合适的安装包下载( 32 位或 64 位)4)安装软件包5)ubuntu 如何打开 Qt Creator?6)环境测试

2015-06-12 22:37:05 6808 3

转载 Linux系统编程——线程私有数据

在多线程程序中,经常要用全局变量来实现多个函数间的数据共享。由于数据空间是共享的,因此全局变量也为所有线程共有。但有时应用程序设计中必要提供线程私有的全局变量,这个变量仅在线程中有效,但却可以跨过多个函数访问。比如在程序里可能需要每个线程维护一个链表,而会使用相同的函数来操作这个链表,最简单的方法就是使用同名而不同变量地址的线程相关数据结构。这样的数据结构可以由 Posix 线程库维护,成为线程私有数据 (Thread-specific Data,或称为 TSD)。

2015-06-11 14:36:30 69998 2

原创 Linux系统编程——进程间通信:共享内存

共享内存是进程间通信中最简单的方式之一。共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。1)共享内存是进程间共享数据的一种最快的方法。一个进程向共享的内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。2)使用共享内存要注意的是多个进程之间对一个给定存储区访问的互斥。若一个进程正在向共享内存区写数据,则在它做完这一步操作前,别的进程不应当去读、

2015-06-09 23:11:23 197965 2

原创 Linux系统编程——进程间通信:消息队列

消息队列提供了一种在两个不相关的进程之间传递数据的简单高效的方法。对于消息队列的操作,我们可以类比为这么一个过程:假如 A 有个东西要给 B,因为某些原因 A 不能当面直接给 B,这时候他们需要借助第三方托管(如银行),A 找到某个具体地址的建设银行,然后把东西放到某个保险柜里(如 1 号保险柜),对于 B 而言,要想成功取出 A 的东西,必须保证去同一地址的同一间银行取东西,而且只有 1 号保险柜的东西才是 A 给自己的。

2015-06-02 20:45:48 93211 2

原创 Linux系统编程——进程间通信:命名管道(FIFO)

无名管道,由于没有名字,只能用于亲缘关系的进程间通信(更多详情,请看《无名管道》)。为了克服这个缺点,提出了命名管道(FIFO),也叫有名管道、FIFO 文件。命名管道(FIFO)不同于无名管道之处在于它提供了一个路径名与之关联,以 FIFO 的文件形式存在于文件系统中,这样,即使与 FIFO 的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过 FIFO 相互通信,因此,通过 FIFO 不相关的进程也能交换数据。

2015-06-02 15:38:35 78351 2

原创 Linux系统编程——进程间通信:管道(pipe)

管道也叫无名管道,它是是 UNIX 系统 IPC(进程间通信) 的最古老形式,所有的 UNIX 系统都支持这种通信机制。每个管道只有一个页面作为缓冲区,该页面是按照环形缓冲区的方式来使用的。这种访问方式是典型的“生产者——消费者”模型。当“生产者”进程有大量的数据需要写时,而且每当写满一个页面就需要进行睡眠等待,等待“消费者”从管道中读走一些数据,为其腾出一些空间。相应的,如果管道中没有可读数据,“消费者” 进程就要睡眠等待。

2015-06-02 11:55:08 178899 1

原创 Linux系统编程——进程间通信:信号中断处理

信号是 Linux 进程间通信的最古老的方式。信号是软件中断,它是在软件层次上对中断机制的一种模拟。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。“中断”在我们生活中经常遇到,譬如,我正在房间里打游戏,突然送快递的来了,把正在玩游戏的我给“中断”了,我去签收快递( 处理中断 ),处理完成后,再继续玩我的游戏。这里我们学习的“信号”就是属于这么一种“中断”。我们在终端上敲“ctrl + c”,就产生一个“中断”,相当于产生一个信号,接着就会处理这么一个“中断任务”(默

2015-06-01 18:55:43 188201 1

原创 为什么要学习和使用 C 语言?

对于理工科学生来说,这个答案可能很简单,因为这是一门必修课。而对于程序员来说选择一门编程语言,在某种程度上,对职业生涯的发展会产生重大的影响,所以必须慎之又慎。那么,为什么要选择一门诞生了将近半个世纪的语言?本文不是老生常谈的废话,如:"C 语言是编程的基础"、"学好 C 语言,走遍天下都不怕"等等,本文力争详尽而又有理的回答这个问题,旨在成为最好的为什么要学习和使用 C 的文章。

2015-05-31 17:38:00 35074 7

原创 Linux系统编程——多任务的同步与互斥

同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互斥是两个任务之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)!因此互斥具有唯一性和排它性,但互斥并不限制任务的运行顺序,即任务是无序的,而同步的任务之间则有顺序关系。

2015-05-30 16:47:57 19466

原创 Linux 开发环境搭建与使用——SlickEdit 简单使用教程

关于 SlickEdit 的安装与配置,请点此链接。1)启动 SlickEdit2)根据需要创键工程a)新建工程( Project —> New )b)根据需要选择要创建工程(这里为 GNU C/C++)c)可创建可执行程序、动态库、静态库(这里为可执行程序)d) 空白工程,带 main()的工程,

2015-05-29 12:18:17 6083

原创 Linux 开发环境搭建与使用——SlickEdit 的安装与配置

vim 是公认很好用很完美,但是对新手来说,上手毕竟不是很容易。Windows 下程序员很多都很喜欢 Source Insight 这个工具来看代码,各种语法高亮看着很舒服。那在 Linux 平台下,有没有媲美 Source Insight 的编辑器呢?答案就是 SlickEdit。SlickEdit 是一个跨平台(在 9 种不同的工作平台上可以工作)的, 支持超过 40 种编程语言的代码编辑器。

2015-05-28 17:56:40 14401 2

原创 Linux系统编程——进程和线程的区别与联系

在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行什么, 只是维护应用程序所需的各种资源,而线程则是真正的执行实体。为了让进程完成一定的工作,进程必须至少包含一个线程。进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源,所以我们也说,进程是资源分配...

2015-05-27 14:48:04 14144 4

翻译 从面向过程到面向对象

从 IBM 公司的约翰·巴库斯在 1957 年开发出世界上第一个高级程序设计语言 Fortran 至今,高级程序设计语言的发展已经经历了整整半个世纪。在这期间,程序设计语言主要经历了从面向过程(如 C 和 Pascal 语言)到面向对象(如:C++、Java、Objective-C),再到面向组件编程(如 .NET 平台下的 C# 语言),以及正在快速发展的面向服务架构技术(如 SOA 和 WebService)。

2015-05-27 14:12:02 36989 1

原创 Linux 信号列表

在 Linux 下,每个信号的名字都以字符 SIG 开头,每个信号和一个数字编码相对应,在头文件 signum.h 中,这些信号都被定义为正整数。信号名定义路径:/usr/include/i386-linux-gnu/bits/signum.h列表中,编号为 1 ~ 31 的信号为传统 UNIX 支持的信号,是不可靠信号(非实时的),编号为 32 ~ 63 的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。非可靠信号一般都有确定的

2015-05-26 17:40:43 26111

原创 Linux系统编程——进程间通信概述

进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源(例如打开的文件描述符)。但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信( IPC:Inter Processes Communication )。

2015-05-26 16:37:26 11996

原创 Linux系统编程——进程替换:exec 函数族

在 Windows 平台下,我们可以通过双击运行可执行程序,让这个可执行程序成为一个进程;而在 Linux 平台,我们可以通过 ./ 运行,让一个可执行程序成为一个进程。但是,如果我们本来就运行着一个程序(进程),我们如何在这个进程内部启动一个外部程序,由内核将这个外部程序读入内存,使其执行起来成为一个进程呢?这里我们通过 exec 函数族实现。

2015-05-26 14:36:23 90402 1

转载 Linux系统编程——特殊进程之守护进程

守护进程是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端呢?之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。由于在 Linux 中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。

2015-05-25 19:02:32 54122 2

转载 Linux系统编程——特殊进程之孤儿进程

父进程运行结束,但子进程还在运行(未运行结束)的子进程就称为孤儿进程(Orphan Process)。孤儿进程最终会被 init 进程(进程号为 1 )所收养,并由 init 进程对它们完成状态收集工作。孤儿进程是没有父进程的进程,为避免孤儿进程退出时无法释放所占用的资源而变为僵尸进程(什么是僵尸进程,请看《特殊进程之僵尸进程》),进程号为 1 的 init 进程将会接受这些孤儿进

2015-05-25 15:03:27 32524 4

原创 Linux系统编程——特殊进程之僵尸进程

在每个进程退出的时候,内核释放该进程所有的资源、包括打开的文件、占用的内存等。 但是仍然为其保留一定的信息,这些信息主要主要指进程控制块的信息(包括进程号、退出状态、运行时间等)。直到父进程通过 wait() 或 waitpid() 来获取其状态并释放(具体用法,请看《等待进程结束》)。 这样就会导致一个问题,如果进程不调用 wait() 或 waitpid() 的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导

2015-05-25 14:15:39 63732 1

原创 Linux系统编程——进程的控制:结束进程、等待进程结束

当一个进程正常或异常终止时,内核就向其父进程发送 SIGCHLD 信号,相当于告诉父亲他哪个儿子挂了,而父进程可以通过 wait() 或 waitpid() 函数等待子进程结束,获取子进程结束时的状态,同时回收他们的资源(相当于,父亲听听死去儿子的遗言同时好好安葬它)。

2015-05-22 18:38:44 57678 2

原创 Linux系统编程——进程的介绍

我们现在的电脑基本上都是多任务,我们聊着 QQ 的时候,同时可以看着视频,这里相当于 QQ 和视频两个程序同时运行着(两个进程)。早期的时候,电脑的 CPU 是单核的(单核理论上只运行操作一个任务),那它是如何做到多任务的呢?这就涉及到进程的调度策略。现在给大家举这么一个例子,有 A,B,C 三个进程,在我们单 CPU 的情况下,每一个时刻只有一个进程在运行,如果 A 运行完,B 运行,B 运行完,C 运行,C 运行完,A 运行,而 CPU 的运算速度足够快,A 两次运行时间间隔足够短,从宏观上就我们就看到

2015-05-21 18:12:54 15094 2

原创 Linux系统编程——文件描述符的复制:dup()和dup2()

dup() 和 dup2() 是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把新的钥匙,这样的话,旧的钥匙和新的钥匙都能开启这把锁。对比于 dup(), dup2() 也一...

2015-05-20 16:54:36 147794 4

标准模板库之map示例代码

C++入门学习——标准模板库之map,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48497983

2015-09-17

C语言排序实例(选择、冒泡、插入、折半、快速)

C语言排序实例(选择、冒泡、插入、折半、快速),相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48209813

2015-09-04

ui 文件和 Qt 代码关系测试代码

Qt入门学习——Qt Creator 中 ui 文件和 Qt 代码关系,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48030333

2015-08-28

利用 Qt Creator 建立空白工程文件示例代码

利用 Qt Creator 建立空白工程文件示例代码,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48004119

2015-08-26

Qt快速入门(vim纯代码编写)测试代码

Qt入门学习——Qt快速入门(vim纯代码编写),相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/47981259

2015-08-26

进程同步与互斥:System V 信号量示例代码

进程同步与互斥:System V 信号量,相关使用教程链接如下: http://blog.csdn.net/tennysonsky/article/details/47811201

2015-08-20

标准库 string 类的使用示例代码

C++入门学习——标准库 string 类的使用,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46791111

2015-07-13

QWidget样式表设置背景示例代码

QWidget 直接派生类的样式表不起作用的解决办法,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46653571

2015-06-26

标准模板库之vector示例代码

C++入门学习——标准模板库之vector,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46627413

2015-06-25

C++入门学习——模板示例代码

C++入门学习——模板,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46625115

2015-06-24

Qt4 项目迁移到 Qt5 问题测试代码

为了尽可能演示 Qt 4 程序在 Qt 5 编译时会出现的问题,我们这里使用了一个Windows Xp下面基于 Qt 4.7 创建的 Qt Gui 应用程序。

2015-06-18

有名信号量示例代码

Linux系统编程——进程同步与互斥:有名信号量,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46500417

2015-06-15

无名信号量示例代码

Linux系统编程——线程同步与互斥:无名信号量,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46496201

2015-06-15

互斥锁示例代码

Linux系统编程——线程同步与互斥:互斥锁,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46494077

2015-06-14

线程池示例代码

Linux系统编程——线程池,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46490099

2015-06-14

线程同步与互斥:读写锁示例代码

Linux系统编程——线程同步与互斥:读写锁,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46485735

2015-06-14

线程私有数据示例代码

Linux系统编程——线程私有数据,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46452953

2015-06-11

线程示例代码

Linux系统编程——多线程实现多任务,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46438525

2015-06-10

共享内存示例代码

Linux系统编程——进程间通信:共享内存,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46425485

2015-06-09

共享内存的属性结构体

共享内存的属性结构体 struct shmid_ds

2015-06-09

STC8-USBCDC模拟串口收发数据

STC8_USBCDC模拟串口收发数据源代码

2024-01-04

protobuf导入定义(import)

protobuf导入定义(import),相关教程:http://blog.csdn.net/tennysonsky/article/details/73985893

2017-06-30

protobuf枚举和包的使用

protobuf枚举和包的使用,相关教程:http://blog.csdn.net/tennysonsky/article/details/73921295

2017-06-29

repeated限定修饰符的使用

repeated限定修饰符的使用,相关教程:http://blog.csdn.net/tennysonsky/article/details/73921025

2017-06-29

protobuf常用序列化和反序列化API

protobuf常用序列化和反序列化API,相关教程:http://blog.csdn.net/tennysonsky/article/details/73920767

2017-06-29

base64编码和解码

base64编码和解码,相关教程,请看:http://blog.csdn.net/tennysonsky/article/details/73613934

2017-06-23

md5编码的使用

md5的使用,相关教程,请看:http://blog.csdn.net/tennysonsky/article/details/73614238

2017-06-23

Win32OpenSSL-1_0_1g.rar

Win32OpenSSL-1_0_1g.rar

2017-01-16

使用HTTP协议实现通信

HTTP协议浅析(下): 使用HTTP协议实现通信,相关教程:http://blog.csdn.net/tennysonsky/article/details/53909564

2016-12-28

C语言可变参数的使用

C语言可变参数的使用,相关教程链接:http://blog.csdn.net/tennysonsky/article/details/53818527

2016-12-22

C++单向链表的实现

C++进阶学习——单向链表的实现,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/49685199

2015-11-06

虚函数表介绍示例代码

C++入门学习——虚函数表介绍,相关教程链接如下:http://blog.csdn.net/tennysonsky/article/details/49252679

2015-10-19

C++中explicit作用示例代码

C++入门学习——explicit关键字的作用,相关教程链接如下:http://blog.csdn.net/tennysonsky/article/details/49096977

2015-10-13

Linux多播组测试代码

Linux多播组测试代码,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/44493407

2015-10-11

C++通过jsoncpp类库读写JSON文件示例代码

C++通过jsoncpp类库读写JSON文件,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48809835

2015-09-29

线程基类的设计示例代码

C++进阶学习——线程基类的设计(Linux),相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48809725

2015-09-29

C++单例模式示例代码

C++进阶学习:单例模式的实现示例代码,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48809541

2015-09-29

JsonCpp源码

JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择 JSON的全称为:JavaScript Object Notation ,顾名思义,JSON是用于标记javascript对象的,详情参考http://www.json.org/。 JsonCpp为解析json的第三方库来,JsonCpp是比较出名的c++解析库,在json官网也是首推的。

2015-09-29

线程堆栈大小的使用介绍示例代码

线程堆栈大小的使用介绍,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48767415

2015-09-27

C++通过TinyXML类库读写XML文件示例代码

C++通过TinyXML类库读写XML文件,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/48630005

2015-09-21

空空如也

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

TA关注的人

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