自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

原创 互斥锁的使用

先上代码#include #include #include #include "iostream" #include using namespace std; int a = 0;pthread_mutex_t _mutex;void pubFunc(){ pthread_mutex_lock(&_mutex); a = 0; a++;

2016-03-29 22:47:54 478

原创 C++ const实现原理

const 用于修饰常量时,分两种情况1. 被修饰的常量是基本类型此时,程序在编译时,就将变量用常量来替换了。 实现机制:这些在编译期间完成,对于内置类型,如int,编译器可能使用常数直接替换掉对此变量的引用。而对于结构体不一定。 看下面的例子:const int j=100;    int *p=const_cast(&j);    *p=20

2016-03-21 17:36:48 2108

原创 const的实现原理

const 用于修饰常量时,分两种情况1. 被修饰的常量是基本类型此时,程序在编译时,就将变量用常量来替换了。 实现机制:这些在编译期间完成,对于内置类型,如int,编译器可能使用常数直接替换掉对此变量的引用。而对于结构体不一定。 看下面的例子:const int j=100;    int *p=const_cast(&j);    *p=20

2016-03-21 16:48:53 5388

原创 类 的默认拷贝构造是浅拷贝。 若要深拷贝,则需要自己重写拷贝构造函数。

类 的默认拷贝构造是浅拷贝。若要深拷贝,则需要自己重写拷贝构造函数。

2016-02-25 17:13:39 572

原创 char *ch = new char; 与 char *ch = new char[10];

先上一段代码:char *ch = new char; ch = "abcd";cout<< "ch= " << ch <<endl;delete ch;return 0;上面的代码中,ch申请了一个字节的空间。 随后指针指向了 一个4个字节的字符串。 程序运行时没有问题。但是存在一个隐患,因为后面三个字节,已经造成内存越界了。后面若再申请内存,分配到的内存地址

2016-02-25 15:29:41 4330 3

原创 资源释放 delete[]

问题:char *p = new char[256];  delete p; delete[] p;  以上两种delete,哪个正确?回答:以上两种delete都正确,但是最好用 delete []p;因为 对于 char *p  delete p 和 delete[] p 没有区别但是 如果是  class *p 的话   d

2016-02-25 15:11:24 371

转载 Epoll在LT和ET模式下的读写方式

http://www.ccvita.com/515.html在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resour

2016-02-24 12:25:45 340

原创 STL中map,multimap,hashmap的区别。

stl中的map就是为了方便查找和定位。下面先看看 list存数据和查找的情况。1.使用list存储数据。list是线性表,占用的是线性不连续的内容空间。  每个元素只与 它前面/它后面的元素 指向关系。也就是说,你拿到一个元素后,可以找到他的上一个元素或者下一个。要想找到更远的,那就得一步一步来。这样,插入一个list元素,没有成本,很快。但是查找一个list元素,时

2015-11-23 18:17:16 3172

原创 Unicode,UTF-8,UTF-16,UTF-32,gb2312,gbk区别

1.ascII码。0x0*******; 总共127个。 有英文字母和符号。好吧,问题来了。英文够用了,其他不够用啊。于是用两种方法解决: a)GB2312 GBK 这一类的编码方式,用两位(2的16次方中变幻)来表示中文字符。 兼容ASC2b)   Unicode编码。 世界上一切所有的字符(各个国家,各种字符)都囊括进来了,用两个字节(16位)来表示。UTF-8,UTF

2015-11-21 15:55:23 3810

转载 Linux下如何搭建WEB服务器教程(apach)

Linux下如何搭建WEB服务器教程环境:Ubuntu 12 04软件:LAMP(Linux,Apache,Mysql,PHP)1、安装Apache(1)在安装HTTP Server之前需安Linux下如何搭建WEB服务器教程环境:Ubuntu 12.04软件:LAMP(Linux,Apache,Mysql,PHP)1、安装Apache(1)在安装HTTP Se

2015-08-26 19:26:50 760

转载 linux服务器校对时间方法

Linux中有个ntp包可以自动校准时间,并且非常好用。Debian系统安装NTP校时包:1    apt-get install ntpdateCentOS系统安装NTP校时包:1    yum install ntp校时命令:1    ntpdate cn.pool.ntp.org如果想每隔一定时间自动校时,只需将上面的命令加入至Cron就行了:

2015-08-26 17:04:21 644

转载 Linux下常用的C/C++开源Socket库

http://blog.csdn.net/fengbingchun/article/details/463493791.      Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html2.      ACE: http://www.cs.wustl.edu/

2015-08-19 01:11:31 804

转载 C++开源库,欢迎补充

http://www.cnblogs.com/kanego/archive/2011/11/10/2244957.htmlC++开源库,欢迎补充。C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有

2015-08-19 00:53:37 422

转载 理解哈希表

http://blog.chinaunix.net/uid-24951403-id-2212565.html哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。对哈希表的使用者一一人来说,这是一瞬间

2015-08-18 01:08:28 467

转载 C++中的引用与指针的区别

http://www.cnblogs.com/tracylee/archive/2012/12/04/2801519.htmlC++中的引用与指针的区别 指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过void

2015-08-18 01:05:26 300

转载 类的大小——sizeof 的研究(1)

http://blog.csdn.net/hairetz/article/details/4171769先看一个空的类占多少空间? [cpp] view plaincopyclass Base  {  public:      Base();      ~Base();    };  

2015-08-18 00:58:53 416

转载 浅谈多进程多线程的选择

原文:http://blog.csdn.net/lishenglong666/article/details/8557215  最原始的博主我没有找到,只能把我从何处转的此篇博文的链接发出来。感觉这篇博文写的很棒,特此转载了鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考

2015-08-18 00:52:47 379

转载 Linux系统调用和库函数调用的区别

http://soft.chinabyte.com/os/258/12424258.shtmlLinux系统调用和库函数调用的区别发布时间:2012-09-12 00:00:00 来源:比特网 作者:悠虎关键字:Linux  Linux下对文件操作有两种方式:系统调用(system call)和

2015-08-18 00:49:53 442

转载 Cache和Buffer的区别

1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。    Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cac

2015-08-18 00:35:47 297

转载 Linux异步机制

http://m.blog.csdn.net/blog/u012491514/26276171Linux异步机制还没有细细整理。什么是异步通知:很简单,一旦设备准备好,就主动通知应用程序,这种情况下应用程序就不需要查询设备状态, 特像硬件上常提的“中断的概念”。 比较准确的说法其实应该叫做“信号驱动的异步I/O”,信号是在软件层次上对中断机制的一种模拟。阻塞I/O意味着

2015-08-18 00:26:00 2498

转载 Linux中的同步机制

转自:http://blog.csdn.net/sunnybeike/article/details/6904429Linux中的同步机制(一)--Futex引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什么?和glib

2015-08-18 00:23:53 494

原创 linux下互斥锁的使用

源码如下#include #include #include #include "iostream" #include using namespace std; pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; //初始化 互斥锁int tmp; void* thread(void *arg)

2015-08-18 00:13:31 660

原创 sizeof(),strlen(),length()

上源码void main(){ //test1 char ch[6] = "af"; // char数据在初始化时候默认会在字符串最后加\0 int i = sizeof(ch); //6 ch这个结构能承受的最大字符数 char d3 = ch[2]; //0 ch这个结构前面两个字节填充了a和f,后面4个字节都是0 char d4 = ch[3]; //0 同上 c

2015-08-12 01:03:06 324

原创 【写一个C程序验证系统是32bit/64bit,验证系统是大端对齐还是小端对齐】

上源码void main(){ int i = 1; int bit = sizeof(i); //4:32bit 8:64bit char ch = (char) i; if (ch == '0') { int afk =1; }else{ int fda=2;//小端对其 } union number { /*定义一个联合*/ int i; st

2015-08-12 00:38:27 544

原创 父类析构函数写成虚函数防止隐蔽的内存泄露问题

5个文件Ctest.h Ctest.cpp CtestChile.h CtestChild.cpp main.cppCtest.h#ifndef _CTEST_H_#define _CTEST_H_#include #include using namespace std;class Ctest{public: Ctest(); virtual ~Ctes

2015-08-04 01:02:49 920

转载 FFmpeg源代码结构图 - 编码

=====================================================FFmpeg的库函数源代码分析文章列表:【架构图】FFmpeg源代码结构图 - 解码FFmpeg源代码结构图 - 编码【通用】FFmpeg 源代码简单分析:av_register_all()FFmpeg 源代码简单分析:avcodec_r

2015-08-03 23:51:27 923

原创 static /const

Ctest.h#ifndef _CTEST_H_#define _CTEST_H_#include #include using namespace std;class Ctest{public: Ctest(); ~Ctest(); //1.【只有静态整形常量】 //static int a = 1; //fail 【只有静态整形常量】才能在此处初始化 s

2015-08-03 23:41:00 330

转载 linux 下如何打开core dump文件开关

dump文件可以在程序crash时,方便我们查看程序crash的地方和上下文信息。在window下,要能生成dump文件,需要自己编写相应的代码。不过现在网上可以找到相应的代码,只要把它下载后然后加到自己的工程中去,就可以了! 在linux下面就简单的许多。只要打开相应的开关,linux会自动在程序crash时生成相应的core文件。这个文件和window下的dump文件类似。 下

2015-07-14 11:12:38 1687

原创 【编程经验】错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘namespace’

错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘namespace’造成这个错误的原因是:编译c++文件时用的 gcc编译,应当用g++编译。将gcc -fPIC -shared CTriangle.cpp CTriangle.h polygon.h  -o libtest.

2015-07-02 14:07:16 2965 1

原创 【linux命令】chmod a+x

在linux系统当中chmod a+x test.bin什么意思?意思是给所有的用户添加执行test.bin 这个文件的权限chmod是添加更改权限命令a是指所有的用户组,包括root用户组,文件拥有者的用户组,还有其他用户组。+x是指添加执行权限。+x是执行权限,+r是阅读权限,+w是写入权限

2015-06-29 16:40:44 22952

转载 【编程经验】time(null)

先放上自己的测试代码#include #include #include using namespace std;void main(){ /*-------1-------*/ /*-------日历时间实际就是一个long int 类型数据,参数为null则返回用1970.1.1到现在的时间秒数------*/ time_t t; t = time(NULL); pr

2015-06-29 15:42:41 1759

原创 【字符串操作】截取字符串

eg:截取一段字符串中的若干信息  #include #include #include using namespace std;void main(){ string strsrc = "http://192.168.1.108:88/my/test/func?"; int pos = strsrc.rfind("/"); if (string::npos !=

2015-06-25 23:15:47 374

原创 【linux命令解析】【nohup &】

nohup ./bin/smsp >smsp.log 2>&1 & 这个命令的意思

2015-06-23 20:04:02 305

原创 【编程经验】一个关于常量不能被修改的错误

【编程经验】一个关于常量不能被修改的错误

2015-06-19 00:15:22 857

原创 【编程经验】【编程习惯】虚类无法被实例化

纯虚函数,虚函数,虚类,实例化

2015-06-18 00:03:59 1681

原创 【设计模式】【单例类】

单例类模板的简洁创建方法

2015-06-14 01:11:18 377

转载 Linux环境下安装codeblock

CodeBlocks是一款很不错的C++集成设计环境(IDE),基于wxWidgets开发,支持Linux和Windows。本人使用时间也不长,个人感觉比Dev c++和eclipse cdt要好用。它在windows上的安装很容易,没有什么可说得,但在RHEL4等Linux下由于没有提供相应的rpm,相对比较麻烦。下面简单介绍一下我在CentOS 4.6下的基于源代码方式的安装步骤:

2015-06-08 10:36:02 886

epoll_serverANDclient

基于epoll的客户端与服务器代码示例。

2016-02-25

DirectX9 SDK

DX9sdk. 游戏开发视频开发的朋友应该用的上,具体开发教程可以上网找。 dx9相关的开发教程很多。

2014-07-30

五子棋程序

这里设计和实现了一个人机对下的五子棋程序,界面比较直观,基本功能都有,简单而完整。

2013-05-09

空空如也

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

TA关注的人

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