- 博客(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
522
原创 C++ const实现原理
const 用于修饰常量时,分两种情况1. 被修饰的常量是基本类型此时,程序在编译时,就将变量用常量来替换了。 实现机制:这些在编译期间完成,对于内置类型,如int,编译器可能使用常数直接替换掉对此变量的引用。而对于结构体不一定。 看下面的例子:const int j=100; int *p=const_cast(&j); *p=20
2016-03-21 17:36:48
2257
原创 const的实现原理
const 用于修饰常量时,分两种情况1. 被修饰的常量是基本类型此时,程序在编译时,就将变量用常量来替换了。 实现机制:这些在编译期间完成,对于内置类型,如int,编译器可能使用常数直接替换掉对此变量的引用。而对于结构体不一定。 看下面的例子:const int j=100; int *p=const_cast(&j); *p=20
2016-03-21 16:48:53
5651
原创 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
4441
原创 资源释放 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
401
转载 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
379
原创 STL中map,multimap,hashmap的区别。
stl中的map就是为了方便查找和定位。下面先看看 list存数据和查找的情况。1.使用list存储数据。list是线性表,占用的是线性不连续的内容空间。 每个元素只与 它前面/它后面的元素 指向关系。也就是说,你拿到一个元素后,可以找到他的上一个元素或者下一个。要想找到更远的,那就得一步一步来。这样,插入一个list元素,没有成本,很快。但是查找一个list元素,时
2015-11-23 18:17:16
3250
原创 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
3933
转载 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
810
转载 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
722
转载 Linux下常用的C/C++开源Socket库
http://blog.youkuaiyun.com/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
841
转载 C++开源库,欢迎补充
http://www.cnblogs.com/kanego/archive/2011/11/10/2244957.htmlC++开源库,欢迎补充。C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有
2015-08-19 00:53:37
460
转载 理解哈希表
http://blog.chinaunix.net/uid-24951403-id-2212565.html哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。对哈希表的使用者一一人来说,这是一瞬间
2015-08-18 01:08:28
498
转载 C++中的引用与指针的区别
http://www.cnblogs.com/tracylee/archive/2012/12/04/2801519.htmlC++中的引用与指针的区别 指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过void
2015-08-18 01:05:26
329
转载 类的大小——sizeof 的研究(1)
http://blog.youkuaiyun.com/hairetz/article/details/4171769先看一个空的类占多少空间? [cpp] view plaincopyclass Base { public: Base(); ~Base(); };
2015-08-18 00:58:53
440
转载 浅谈多进程多线程的选择
原文:http://blog.youkuaiyun.com/lishenglong666/article/details/8557215 最原始的博主我没有找到,只能把我从何处转的此篇博文的链接发出来。感觉这篇博文写的很棒,特此转载了鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考
2015-08-18 00:52:47
420
转载 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
473
转载 Cache和Buffer的区别
1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。 Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cac
2015-08-18 00:35:47
329
转载 Linux异步机制
http://m.blog.youkuaiyun.com/blog/u012491514/26276171Linux异步机制还没有细细整理。什么是异步通知:很简单,一旦设备准备好,就主动通知应用程序,这种情况下应用程序就不需要查询设备状态, 特像硬件上常提的“中断的概念”。 比较准确的说法其实应该叫做“信号驱动的异步I/O”,信号是在软件层次上对中断机制的一种模拟。阻塞I/O意味着
2015-08-18 00:26:00
2549
转载 Linux中的同步机制
转自:http://blog.youkuaiyun.com/sunnybeike/article/details/6904429Linux中的同步机制(一)--Futex引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什么?和glib
2015-08-18 00:23:53
527
原创 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
704
原创 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
360
原创 【写一个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
575
原创 父类析构函数写成虚函数防止隐蔽的内存泄露问题
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
974
转载 FFmpeg源代码结构图 - 编码
=====================================================FFmpeg的库函数源代码分析文章列表:【架构图】FFmpeg源代码结构图 - 解码FFmpeg源代码结构图 - 编码【通用】FFmpeg 源代码简单分析:av_register_all()FFmpeg 源代码简单分析:avcodec_r
2015-08-03 23:51:27
959
原创 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
363
转载 linux 下如何打开core dump文件开关
dump文件可以在程序crash时,方便我们查看程序crash的地方和上下文信息。在window下,要能生成dump文件,需要自己编写相应的代码。不过现在网上可以找到相应的代码,只要把它下载后然后加到自己的工程中去,就可以了! 在linux下面就简单的许多。只要打开相应的开关,linux会自动在程序crash时生成相应的core文件。这个文件和window下的dump文件类似。 下
2015-07-14 11:12:38
1834
原创 【编程经验】错误: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
3120
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
24448
转载 【编程经验】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
1966
原创 【字符串操作】截取字符串
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
402
转载 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
1018
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人