自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(431)
  • 收藏
  • 关注

转载 欢迎使用CSDN-markdown编辑器

vs加载lib

2015-07-21 14:58:02 631

转载 正则表达

http://www.bejson.com/regex/jiaocheng.html#getstarted

2015-06-15 10:50:07 532

转载 Golang Channel用法简编

Go这门语言也许你还不甚了解,甚至是完全不知道,这也有情可原,毕竟Go在TIOBE编程语言排行榜上位列30开外。但近期使用Golang 实现的一杀手级应用Docker你却不该不知道。docker目前火得是一塌糊涂啊。你去国内外各大技术站点用眼轻瞥一下,如 果没有涉及到“docker”字样新闻的站点建 议你以后就不要再去访问了^_^。Docker是啥、怎么用以及基础实践可以参加国内一位仁兄的经验

2015-05-21 11:35:36 617

转载 go 数组和数组切片比较

一、数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列。(1)数组的创建。数组有3种创建方式:[length]Type 、[N]Type{value1, value2, ... , valueN}、[...]Type{value1, value2, ... , valueN} 如下:复制代码 代码如下:func test5() {    var

2015-05-21 10:55:02 6420

转载 C++11新特性:Lambda函数(匿名函数)

C++11终于知道要在语言中加入匿名函数了。匿名函数在很多时候可以为编码提供便利,这在下文会提到。很多语言中的匿名函数,如C++,都是用Lambda表达式实现的。Lambda表达式又称为lambda函数。我在下文中称之为Lambda函数。为了明白Lambda函数的用处,请务必先搞明白C++中的自动类型推断:http://blog.csdn.net/srzhz/article/details/7

2015-05-19 14:30:40 487

转载 Golang 工程自管理

有用过VS或者Eclipse的同学一定对左边一列(也可能放右边或下边或者隐藏起来)工程目录记忆尤新。 尤其是有一大堆依赖包、库的时候,目录结构更是复杂。其实这都不是大问题。 熟悉自己工程的自然很适应这种结构。但是当大家去看一些C/CPP工程的时候,其目录结构各自不同。 虽然有一些大家都懂的“src/bin/lib”这些目录。但每个工程之间还是各自不同的。 这样在接触他人项目的时候不免会折腾一番。而

2015-05-18 18:12:58 802

转载 Linux命令之rz - 批量上传文件,简单易用

用途说明  rz命令可以批量上传文件,当然也可上传单个文件啦。使用的协议是古老的ZMODEM协议,虽然协议古老,但毫不影响的简单易用的特性。一般情 况我们要上传文件到Linux系统,要么使用ftp(还得架设ftp服务端),要么使用sftp,上传一个文件要敲不少命令。而这里介绍的rz命令,只需 要简单的在命令行上敲一下 rz -be 命令,在SecureCRT下就会弹出文件选择框让你选择需要上传

2014-09-26 16:17:38 3272

转载 lua

1: 字符串转化为数字类型, tonumber 数字类型转化为字符串, tostring .. 为字符串连接运算符 print (0 .. 1) --> 01 print (10 .. "" == "10") 等价于 print (tostirng(10) == "10") 2: C 语言中的三元运算符 a?b:c 在 Lua 中可以这样实现: (a and

2014-02-17 13:52:29 652

转载 pthread_detach 详解

pthread_detach  创建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码),所以创建线程者应该调用pthread_join来等待线程运行结束,并可得到线程的退出代码,回收其资源(类似于wait,waitpid)  但是调用pthread_join

2014-01-05 15:05:28 851 1

转载 pthread_create后没有detach导致内存持续增长

解决了一个隐蔽的内存泄漏——pthread_create后没有detach导致内存持续增长昨天解决了一个隐蔽的内存泄漏问题,原因是pthread_create后的僵死线程没有释放导致的内存持续增长。现象是这样的:短时间内程序运行正常,但跑了12小时左右,用top查看其内存占用居然高达2G,于是马上意识到有内存泄漏。最先想到的是malloc/free、new/delete

2014-01-05 13:35:22 839

原创 WEB客户与同时链接

client.cpp 文件#include "unpthread.h"#define MAXFILES 20#define SERV "80"struct file{ char *f_name ; char *f_host ; int f_fd ; int f_flags ; pthread_t f_tid ; }file[MAXFILES];#define F

2013-12-26 13:17:54 588

转载 如何创建makefile

目的:       基本掌握了 make的用法,能在Linux系统上编程。环境:       Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备:       准备三个文件:file1.c, file2.c, file2.h       file1.c:              #include            

2013-12-24 17:30:38 1392

转载 TCP流量控制和拥塞控制 .

TCP/ip的流量控制1. 利用滑动窗口实现流量控制    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。    利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。    设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里的 rwn

2013-12-19 17:05:30 578

转载 TCP快速重传与快速恢复原理分析

TCP快速重传与快速恢复原理分析分类: Linux TCP/IP 2012-02-03 18:07 2913人阅读 评论(2)收藏 举报tcp算法网络lessstructurenetwork超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送一个数据以后就开启一个计时器,在一定时间内如果没有得到发送数据报的ACK报文,那么就重新发

2013-12-19 16:54:04 528

转载 socket connect 阻塞与非阻塞 .

在C/S模式中,有时候我们需要连接服务器去下载一些更新,所以在客户端启动时,客户端自动连接服务器下载更新,如果客户端与服务器之间网络连接不通,则客户端不用一直等待连接,而是在一定时间内(可以设为若干秒)自动判定网络连接出错,从而不再请求更新~~    socket函数生成socket结构体时,默认生成的socket是阻塞的~如果我们使用connect去连接服务器,而这时网络出现故障,则

2013-12-18 22:08:29 1232

转载 套接字的属性 .(套接字默认为阻塞的)

以前我总是将是否处于阻塞模式和是否可以进行异步IO操作混淆起来。以前,我认为可以进行异步IO操作的套接字必然不是处于阻塞模式;处于阻塞模式的套接字无法进行异步IO操作。最新比较正规地学习win socket开发,终于分清这两个概念。    其实,是否处于阻塞模式、是否可以进行异步IO操作是一个套接字上两个不相关的属性。    首先,所有的winsock函数可以分成阻塞函数和非阻塞函数。

2013-12-18 21:10:11 1404

转载 fcntl函数说明

fcntl函数说明2011-07-25 23:43 4410人阅读 评论(0)收藏 举报终端struct测试filelinuxcmd (1)fcntl函数说明前面的这5个基本函数实现了文件的打开、读写等基本操作,这一节将讨论的是,在文 件已经共享的情况下如何操作,也就是当多个用户共同使用、操作一个文件的情况,这时,Linux 通常采用

2013-12-18 21:05:51 501

转载 基数排序

int maxbit(int data[],int n) //辅助函数,求数据的最大位数{ int d = 1; //保存最大的位数 int p =10; for(int i = 0;i < n; ++i) { while(data[i] >= p) { p *= 10; ++d; } } return d;}void radi

2013-12-18 11:09:52 510

原创 计数排序

#include using namespace std ;#define N 10 #define inf -100000000void count_sort(int a[] , int b[] , int k ){ int i , c[9]; for( i = 0 ; i <= k ; i ++) c[i] = 0 ; for( i = 0 ; i < N

2013-12-18 10:53:24 520

转载 #error # ifndef的作用

# 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #ifndef 如果宏没有定义,则编译下面代码 #elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 #endif 结束一个#if……#else

2013-11-02 15:17:38 711

转载 嵌入式面试题

预处理器preprocessor:1.用预处理指令声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL这里考查的知识:1)#define语法的基本知识,比如不能以分号结束2)懂得预处理器将为我们计算常数表达式的值,因此,直接写出你是任何计算一年宗有多少秒而不是计算出实际的值,是更清晰而

2013-11-02 15:13:59 604

转载 怎么将一个十六进制数转变成十进制数

在程序中,我们有时需要将一个十六进制字符串转换为十进制数字。比如:char *ptr="0x11";int n=0;//我们想让n等于0x11,即17通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法:view plaincopy to clipboardprint?char *ptr="123";       int n=0;   n=a

2013-10-29 22:38:44 2034

转载 string的四个默认函数

编写类String的构造函数、析构函数和赋值函数类String的原型为:class String{      public:        String(const char *str = NULL);    // 普通构造函数        String(const String &other);        // 拷贝构造函数        ~

2013-10-29 22:07:10 941

转载 SQL数据库基本知识

SQL数据库基本知识  SQL数据库是关系数据库。 “事务”处理用户对数据库表格的修改和数据的操作,一次性完成的一组针对表的操作,要么全部成功,要么全部失败。日志是记录关系数库修改情况的笔记。关系数据库一般都是按照“先写日志”的方法来进行事务操作。  SQL语言全称结构化查询语言,功能包括了查询(Query)、操纵(Manipulation)、定义(Definition)和控制(Con

2013-10-17 22:32:06 834

转载 SQL Server数据库基础知识归纳总结

SQL Server数据库基础知识归纳总结(2012-09-12 21:27:41)转载▼标签:sqlserverit分类: SQL1、数据库的“特点”:数据共享、数据完整性、数据独立性高、2、SQL的四个“系统数据库”:master、model、msdb、tempdb简称为“三M一T”;【master

2013-10-17 22:17:53 2031

转载 函数和存储过程的区别

函数和存储过程的区别本质上没区别。只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。执行的本质都一样。      函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少       1.     一般来说,存储过程实现的功能要复杂一点,而函数的实现

2013-10-17 21:56:51 568

转载 线程同步的方法

用什么关键字修饰同步方法 ?用synchronized关键字修饰同步方法 同步有几种实现方法,都是什么?分别是synchronized,wait与notifywait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。notify():唤醒一个处

2013-10-14 21:00:47 393

转载 k路归并 - 败者树实现

外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行多路归并排序。    多路归并排序算法在常见数据结构书中都有涉及。从2路到多路(k路),增

2013-10-14 17:10:25 848

转载 虚析构函数

虚析构函数是为了解决这样的一个问题:基类的指针指向派生类对象,并用基类的指针删除派生类对象。如果某个类不包含虚函数,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使析构函数为虚一般是个坏主意。因为它会为类增加一个虚函数表,使得对象的体积翻倍,还有可能降低其可移植性。所以基本的一条是:无故的声明虚析构函数和永远不去声明一样是错误的。实际上,很多人这样总结:当且仅当类里包

2013-10-14 14:52:58 485

转载 C++中explicit关键字的作用

C++中explicit关键字的作用explicit用来防止由构造函数定义的隐式转换。 要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。例如: class things{ public: things(const std::string&name =""):

2013-10-14 14:48:10 513

转载 c++中的四种类型转换的区别

c++中的四种类型转换的区别 类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION;   但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换 成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生

2013-10-14 14:26:11 534

转载 c/c++ 的内存机制

进 程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。一、Linux进程的五个段下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么

2013-10-13 15:09:00 564

原创 STL中map、set的数据结构及底层实现

STL中map、set的数据结构及底层实现摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。STL map和

2013-10-13 14:32:02 860

转载 strcpy函数的实现

大家一般认为名不见经传strcpy函数实现不是很难,流行的strcpy函数写法是:[cpp] view plaincopyprint?char *my_strcpy(char *dst,const char *src)  {      assert(dst != NULL);      assert(src != NULL);      char *ret = ds

2013-10-13 14:05:30 520

转载 new 和delete的实现

通过了解发现,原来在new的内部实现中只涉及内存的分配,也就是只考虑malloc的使用,而关于调用构造函数的部分则是交由编译器处理,所以这里看不到调用构造函数的代码。 由malloc分配内存空间,然后判断是否分配,并发出bad_alloc的异常消息./*如果分配成功,返回指向内存的指针,否则。返回NULL,并抛出bad_alloc异常*/void *operator new(int s

2013-10-07 23:05:12 498

转载 引起进程调度的原因

引起进程调度的原因(2008-11-26 22:27)引起进程调度的原因有以下几类,  (1)正在执行的进程执行完毕。这时,如果不选择新的就绪进程执行,将浪费处理机资源。  (2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等状态。  (3)执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了v原语操作激活了等待资源的进程队列。  (4)执行中进程提出I/O请求后被阻塞

2013-10-03 21:17:58 6631

原创 孤儿进程和僵尸进程

一、定义:什么是孤儿进程和僵尸进程   僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。   孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。注:    僵尸进程将会导致资源浪费,而孤儿则不会。

2013-10-03 20:42:32 379

转载 为虚函数,什么情况下需要将析构函数定义为虚函数?

为虚函数,什么情况下需要将析构函数定义为虚函数?首先要明确:1.每个析构函数(不加 virtual) 只负责清除自己的成员。2.可能有基类指针,指向的确是派生类成员的情况。(这是很正常的),   那么当析构一个指向派生类成员的基类指针时,程序就不知道怎么办了。    所以要保证运行适当的析构函数,基类中的析构函数必须为虚析构。        基类指针可以指向派生

2013-10-02 21:42:50 431

原创 构造函数为什么不能为虚函数

1,从存储空间角度    虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度        虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数

2013-10-02 21:39:40 484

转载 稳定排序和不稳定排序

稳定排序和不稳定排序      这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。      首先,排序算法的稳定

2013-10-01 19:40:27 542

空空如也

空空如也

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

TA关注的人

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