- 博客(51)
- 资源 (14)
- 收藏
- 关注
原创 C++ primer第四章
4.1--------------------数组4.2--------------------指针的引入4.3--------------------C风格字符串4.4--------------------多维数组 4.1数组数组是由类型名,标示符,维数组成的符合数据类型。类型名指定了放在数组中元素的类型,维数指定了数组的长度。4.1.1数组的定义和初始化
2015-09-30 15:54:14 279
转载 如何编写让别人能读懂的代码?
随着软件行业的不断发展,历史遗留的程序越来越多,代码的维护成本越来越大,甚至大于开发成本。而新功能的开发又常常依赖于旧代码,阅读旧代码所花费的时间几乎要大于写新功能的代码。我前几天看了一本书,书中有这么一句话:“复杂的代码往往都是新手所写,只有经验老道的高手才能写出简单,富有表现力的代码。”此话虽然说的有点夸张,可是也说明了经验的重要性。
2015-09-29 23:17:21 512
转载 Linux的capability深入分析
一)概述:1)从2.1版开始,Linux内核有了能力(capability)的概念,即它打破了UNIX/LINUX操作系统中超级用户/普通用户的概念,由普通用户也可以做只有超级用户可以完成的工作.2)capability可以作用在进程上(受限),也可以作用在程序文件上,它与sudo不同,sudo只针对用户/程序/文件的概述,即sudo可以配置某个用户可以执行某个命令,可以更改某个文
2015-09-28 22:36:57 1447
转载 Ubuntu 安装mysql和简单操作
http://www.cnblogs.com/zhuyp1015/p/3561470.htmlubuntu上安装mysql非常简单只需要几条命令就可以完成。 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3. sudo apt-get install li
2015-09-26 16:00:11 343
原创 apue-intro
1.read和write系统调用read()和write()系统调用非常相似。它们都需要三个参数:一个文件描述符fd,一个内存区的地址buf(该缓冲区包含接受的数据或者要传送的数据的存放位置),以及一个数count(指定应该传送多少字节)。两个系统调用都返回所成功传送的字节数
2015-09-24 17:59:46 342
原创 effective c++ 条款23 perfer nonmember nonfreind function to member function
/* * main.cpp * * Created on: Sep 23, 2015 * Author: lili0506 */#include"Rational.h"int main(){ Rational oneFourth(1,4); Rational result; result = oneFourth * 2; result = 2 * one
2015-09-24 17:16:16 382
转载 dbus-glib 和 GDBus 的区别
Conceptual differences(概念上的区别)The central concepts of D-Bus are modelled in a very similar way in dbus-glib and GDBus. Both have a objects representing connections, proxies and method invocations. B
2015-09-24 16:56:51 1676
转载 GLib介绍与使用
GLib是一种底层库,创建GDK和GTK应用程序时该库提供许多有用的定义和函数。包括基本类型及限制的定义、标准宏、类型转化、字节序、存储分配、警告和断言、消息记录、计时器、字符串工具、hook函数、句法扫描器、动态加载模块和字符串自动补全,同时也提供了许多数据类型及相关操作。包括存储块、双向链表、单向链表、哈希表、动态列表、关系和元组及缓存。最后GLib具有很好的移植性,所以使用GLib作
2015-09-24 16:25:08 504
转载 apue3 搭建(基于ubuntu 12.04LTS)
1.在网上下载书中源代码,点击打开链接2.解压文件:tar -zxvf *.tar.gz3.cd apue.3e/4.make在这个过程中,你会看到最后由于can,t find -lbsd而不能make成功,解决办法是添加libbsd.a的静态链接库sudo apt-get install libbsd-dev5.make(again)
2015-09-21 23:41:01 620
原创 webrtc视频采集后编码与发送
VideoCaptureModuleV4L2::CaptureProcessVideoCaptureImpl::IncomingFrameConvertToI420 & VideoCaptureImpl::DeliverCapturedFrame计算时间戳 & ViECapturer::OnIncomingCapturedFrameI420VideoFrame::SwapFrameViECapturer::ViECapturerViECa...
2015-09-21 14:26:31 2314 1
原创 Linux解压
·tar.gz格式:·tar.gz为扩展名的是一种压缩文件,在Linux和OSX下常见,Linux和OSX都可以直接解压使用这种压缩文件。解压方法:tar -xzvf ***.tar.gz
2015-09-21 10:13:32 385
转载 数组指针和指针数组的区别(转)
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;
2015-09-20 23:29:42 387
转载 unix网络编程卷2的头文件unpipc.h下载和编译(转)
http://blog.chinaunix.net/uid-27164517-id-3320677.html1. 编译原书所带例子: unpv22e.tar.gz 下载地址:http://www.kohala.com/start/unpv22e/unpv22e.tar.gz 2. 解压: $tar -zxvf unpv22e.tar.gz 3. 编译:
2015-09-20 23:00:31 886
转载 Linux系统调用列表
以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。按照惯例,这个列表以manpages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用,对个
2015-09-20 22:44:59 424
转载 Linux 文件和目录操作的相关函数
1. 文件状态数据结构[cpp] view plaincopystruct stat { mode_t st_mode; //文件类型,文件权限 ino_t st_ino; //i节点号 dev_t st_dev; dev_t st_rdev; //设备文件序号
2015-09-20 22:32:25 341
原创 _stdcall与_cdel
1. _cdecl(1). 是C Declaration的缩写,表示C语言默认的函数调用方法,实际上也是C++的默认的函数调用方法。(2). 所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。具体所示:调用方的函数调用->被调用函数的执行->被调用函数的结果返回->调用方清除调整堆栈。(3). 被调用函数无需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚
2015-09-19 23:19:13 1698 1
原创 unix man使用
在unix下面做开发,查看man手册是非常必要,也是非常需要的。如何更快速的使用man? 当然,平时有不会的命令,或者记不住命令的参数时,就会man一下,可是在unix man手册里有这样一个现象,比如你想查看一下read()这个C库函数的功能和参数以及用法。man read其结果呢?只会出shell的read命令的相关帮助信息,没有出现read()库函数的相关内容。why?
2015-09-19 23:03:30 617 1
原创 引用形参
引用形参---直接关联其所绑定对象,而并非是对象的副本。从C语言背景到C++程序员习惯通过传递指针来实现对实参的访问,在C++中,使用引用形参则更安全和更自然。引用形参作用:1、通过引用形参返回额外的信息、2、利用const引用避免复制如果使用引用形参的唯一目的是避免复制实参,则应将形参定义为const引用定义为const引用,可以避免修改实参,而只使用了形参的
2015-09-18 16:43:23 1345 1
原创 数组的形参与实参,通过引用传递数组
在《C++ Primer 第四版》的第七章中,讲到了通过引用传递数组,和其他类型一样,数组形参可声明为数组的引用。如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身。在这种情况下,数组大小成为形参与实参类型的一部分,编译器检查数组实参的大小与形参的大小是否匹配。#includeusing namespace std;void output(int (&a)[13
2015-09-18 11:43:09 7349 5
转载 每个程序员都应该知道的8个Linux命令
摘要:Linux里有很丰富的各种命令,有些是很难用的。然而,学会了前面说的这8个命令,你已经能处理大量的log分析任务了,完全不需要用脚本语言写程序来处理它们。每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识。我并不是说你应该成为一个Linux专家,我的意思是,当面对Linux命令行任务时,你应该能很熟练的完成。事实上,学会了下面8个命令,我基本上能完成任何需要完
2015-09-18 11:27:58 397 1
原创 linux之gcc基础
gcc -o opendir.o -c opendir.c-c只编译,不链接#include #include void add();void add(int i);void add(int i,char *);int main(void){ add(); add(1); add(1,""); if(access("/etc/passwd", R_OK)==0)
2015-09-16 15:34:17 353 1
原创 C++重载操作符之二(输入>>,输出<<,以及乘法)
#includeusing namespace std;class Rational{private: int numerator; int denominator;public: Rational(int n,int d) :numerator(n), denominator(d){} /* 乘法操作符既可以使用成员重载又可以使用友元重载的 */ /* friend
2015-09-16 14:24:31 1595 1
原创 函数对象,函数指针,指针函数
#includeusing namespace std;/* 一个函数对象,即一个重载了括号操作符“()”的对象。 当用该对象调用此操作符时,其表现形式如同普通函数调用一般,因此取名叫函数对象。*/class FunctionObjType{public: void operator()() { cout << "test functi
2015-09-15 14:40:58 369 1
转载 设计模式C++实现(10)——桥接模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍桥接模式的实现。 [DP]书上定义:
2015-09-14 16:06:58 547 1
转载 设计模式C++实现(9)——享元模式
转载出处 http://blog.csdn.net/wuzhekai1985 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模
2015-09-14 16:06:29 330 1
原创 Linux常用命令
ls -l(这个参数是字母L的小写,不是数字1) 这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(最上面两行是我自己加的): 位置1 2 3 4 5 6 7 文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名 drwx------ 2 Guest u
2015-09-13 23:39:03 518 1
转载 设计模式C++实现(8)——代理模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》(DP)两本书。本文介绍代理模式的实现。 [DP]
2015-09-13 21:14:40 532 3
转载 设计模式C++实现(7)——外观模式、组合模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》(DP)两本书。本文介绍外观模式和组合模式的实现。
2015-09-13 21:14:08 522 3
转载 设计模式C++实现(6)——建造者模式(Builder)
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》(DP)两本书。本文介绍建造者模式的实现。 建造者模
2015-09-13 21:12:35 436 1
原创 设计模式C++实现——简单工厂(并不在23种之中)
// 简单工厂_工厂方法_抽象工厂.cpp //#include "stdafx.h"#include using namespace std;class Fruit{public: Fruit() { printf("Fruit\n"); } virtual ~Fruit() { printf("~Fruit\n"); }};class Banana
2015-09-13 21:06:33 451 1
转载 设计模式C++实现(2)——策略模式
转载出处 http://blog.csdn.net/wuzhekai1985软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可
2015-09-13 21:05:24 414 1
转载 设计模式C++实现(3)——适配器模式
转载出处 http://blog.csdn.net/wuzhekai1985软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可
2015-09-13 21:04:06 457 1
原创 设计模式C++实现(4)——饿汉懒汉之单例模式
转载出处 http://blog.csdn.net/wuzhekai1985 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复
2015-09-13 21:03:00 1520 4
转载 设计模式C++实现(5)——原型模式、模板方法模式
转载请标明出处 http://blog.csdn.net/wuzhekai1985软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复
2015-09-13 16:37:33 367 1
原创 ARP (地址解析协议)
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础
2015-09-11 15:58:03 598 1
原创 Effective_C++_条款三十三:避免遮掩继承而来的名称
首先理解下成员函数的重载、覆盖(override)与隐藏重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)const函数或者指向const的指针#includeusing namespace std;class Base{public: virtual void function() { }
2015-09-11 10:17:05 402 1
原创 Linux之V4L2基础编程
1. 定义V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程:打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓冲 区管理)-> 循环获取数据-> 关闭设备。3. 设备的打开和关闭:#include int open(const char *device_name, int fl
2015-09-10 22:03:26 545 1
转载 Linux V4L2 摄像头视频采集
一,什么是video4linuxVideo4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/videoN下,N可能为0,1,2,3... 一般0.另,推荐一个用于播放从摄像头采集到的raw数据的播放器RawP
2015-09-10 21:46:58 597 1
libjingle学习笔记
2017-01-03
RPM for Oracle11g
2016-10-05
Java编程思想第四版完整中文高清版
2015-06-03
UNIX环境高级编程(第二版中文)
2015-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人