C/C++
骑自行车
这个作者很懒,什么都没留下…
展开
-
C++11 中值得关注的几大变化(详解)
http://coolshell.cn/articles/5265.html源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 (and Why You Should Care),赖勇浩做了一个中文翻译在这转载 2011-09-14 18:14:44 · 490 阅读 · 0 评论 -
HTTP报文格式(转)
http://www.cnblogs.com/ryhan/archive/2011/08/09/2132509.html HTTP协议(Hypertext Transfer Protocol――超文本传输协议),浏览器端(客户端)向WEB服务器端访问页面的过程和 HTTP协议报文的格式。 基于HTTP协议的客户机访问包括4个过程,分别是建立TCP套接字连接、发送HTTP请求报转载 2012-06-20 17:42:58 · 954 阅读 · 0 评论 -
C语言赋值语句是不是原子操作?
http://blog.csdn.net/yfkiss/article/details/7450467 经常看到有同学讨论,C语言的赋值语句是不是原子操作?C语言的++语句是不是原子操作?webopedia:Atomic implies indivisibility and irreducibility, so an atomic operation must be perfo转载 2012-06-26 10:54:29 · 2811 阅读 · 0 评论 -
Linux 下hash_map的使用
http://blog.sina.com.cn/s/blog_73eb956401019cq1.html Linux下使用hash_map 问题1:头文件#if 0 #if __GNUC__>2 #include #include using namespace __gnu_cxx; #else #include #include usi转载 2012-11-09 17:26:36 · 1319 阅读 · 0 评论 -
TCP连接 保持 保活
http://hi.baidu.com/zgcui/item/ffd8b7de64a3b5836dce3f23TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时转载 2013-04-09 10:51:42 · 14061 阅读 · 0 评论 -
linux下查出cpu占用过高线程
http://mnt.conf.blog.163.com/blog/static/115668258201211734032988/首先利用top命令,按P,以cpu使用率从高至低排序 然后利用ps aux | grep PID命令可以判断是tomcat 出了问题但要定位到具体线程或者代码,还需要下面的操作转载 2013-04-10 14:51:31 · 1595 阅读 · 0 评论 -
STL中erase()小心使用
http://blog.sina.com.cn/s/blog_67b6b720010114d3.htmlerase()函数的功能是用来删除容器中的元素删除某个容器里的某个元素:c.erase(T);看似一个简单的动作,然而对不同类型的容器,内部却做了截然不同的事情,后面介绍。假设有这样一个题目,将某个容器中所有满足条件N == X的元素删除,按照常规的思路应该有类似这样的代码:转载 2013-06-06 16:10:06 · 36744 阅读 · 4 评论 -
关于在结构体末尾定义空数组的用法
关于在结构体末尾定义空数组的用法,以前看到过,一直没搞懂,在无意中瞄到了答案,实在是三生有幸,阿米多佛啊所以就贴出来大家一起分享:struct ast_exten { char *exten; /* Extension name */ int matchcid; /* Match caller id ? */ char *cidmatch; /* C转载 2013-06-22 10:55:28 · 4310 阅读 · 1 评论 -
BM模式匹配算法原理(图解)
首先,先简单说明一下有关BM算法的一些基本概念。BM算法是一种精确字符串匹配算法(区别于模糊匹配)。BM算法采用从右向左比较 的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。BM算法的基本流程: 设文本串T,模式串为P。首先将T与P进行左对齐,然后进行从右向左比较 ,如下图所示: 若是某趟比较不匹配时转载 2013-07-10 19:24:27 · 1436 阅读 · 0 评论 -
字符串的排列组合问题
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 分析:这是一道很好的考查对递归理解的编程题,因此在过去一年中频繁出现在各大公司的面试、笔试题中。我们以三个字符abc为例来分析一下求字符串排列的过程。首先我们固定第一个字符a,求后面两个字符bc的排列。当两个字符转载 2013-07-16 17:48:10 · 1219 阅读 · 0 评论 -
大端法、小端法、网络字节序
http://www.blogjava.net/tinysun/archive/2009/12/31/307952.html大端法、小端法、网络字节序 转关于字节序(大端法、小端法)的定义《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。转载 2013-07-04 09:17:26 · 972 阅读 · 0 评论 -
linux 多线程 信号
在开发linux mjpg-streamer程序的时候,使用signal,奇怪的是程序竟然退出了。后来读了曹老师的文章,才解决了这个问题。所以收录到自己的博客里。呵呵多线程中定时器的使用418651006192010-10-14 19:47:29 ——转载 2013-10-28 15:03:17 · 1994 阅读 · 0 评论 -
C++ string 的写时复制
http://blog.csdn.net/haoel/article/details/24058/ 测试结果Linux: Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic i686)GCC:4.8以上string确实存在写时复制,存在引用计数。win8+Microsoft Visual C++原创 2014-06-23 23:06:58 · 717 阅读 · 0 评论 -
很特别的一个动态规划入门教程
http://www.cnblogs.com/sdjl/articles/1274312.html转载 2014-06-03 13:22:22 · 907 阅读 · 0 评论 -
log4cplus
http://sourceforge.net/projects/log4cplus/下载了 log4cplus-1.1.3-rc2.zip 这个版本的 。在linux原创 2014-08-08 17:18:35 · 787 阅读 · 0 评论 -
PB中扩展嵌套结构
http://aboutfedora.blogspot.com/2012/10/protobuf-examples-for-c-and-java-1.htmlProtobuf Examples for C++ and Java (1)This sample .proto is taken from http://blog.wolfman.com/articles/201转载 2014-09-19 09:41:11 · 3131 阅读 · 0 评论 -
va_list、va_start、va_arg、va_end
http://www.cppblog.com/qiujian5628/archive/2008/01/21/41562.html http://www.cnblogs.com/BloodAndBone/archive/2011/01/18/1938053.html转载 2012-04-17 14:09:48 · 538 阅读 · 0 评论 -
20个C语言中常用宏定义总结
01: 防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif02: 重新定义一些类型防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned char boolean; /* Boolean value type. */typedef uns转载 2012-03-31 09:29:42 · 1848 阅读 · 1 评论 -
C实现结构体的继承(转)
struct Fruit { void (*output)(void); int i; }; struct Apple { struct Fruit n; void (*output)(void); };转载 2011-09-15 14:18:26 · 1778 阅读 · 0 评论 -
typedef (包含对复杂函数声明的理解)
typedef的语法描述 在现实生活中,信息的概念可能是长度,数量和面积等。在C语言中,信息被抽象为int、float和 double等基本数据类型。从基本数据类型名称上,不能够看出其所代表的物理属性,并且int、float和double为系统关键字,不可以修改。为转载 2011-08-30 18:13:36 · 2816 阅读 · 0 评论 -
文本与二进制方式打开文件的区别
出自:http://blog.csdn.net/bbjjqq/article/details/6002065 文本文件也叫做ASCII码文件,与以‘文本方式’打开文件不是同一个概念!文本文件存储的是ASSCII码字符,即存储在磁盘上只占用二进制的0x20--0x7e。另外转载 2011-08-30 18:55:28 · 714 阅读 · 0 评论 -
结构体的偏移量
我们知道,在TCP/IP协议中,当我发送一个消息的时候,我必须要定义一个消息头,然后和消息体一起发送,那如何从一个消息中快速定位到消息体呢?举个例子:首先定义一个消息:typedef struct tagT_RUDP{ int a; int b; in转载 2011-08-30 19:01:04 · 647 阅读 · 0 评论 -
const
来自:http://blog.csdn.net/bbjjqq/article/details/6095924#quote C中CONST的使用: 虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。转载 2011-08-30 18:39:08 · 438 阅读 · 0 评论 -
extern
出自:http://blog.csdn.net/bbjjqq/article/details/6081650 extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请转载 2011-08-30 18:49:06 · 400 阅读 · 0 评论 -
c函数收集
收集一些链接http://blog.csdn.net/ghostcomputing/article/details/6817295转载 2011-10-11 12:47:31 · 474 阅读 · 0 评论 -
在 C/C++ 语言中特定的宏,如 __FUNCTION__ .
http://blog.csdn.net/dafan/article/details/5781491 __FILE____LINE____DATE____TIME____FUNC__ __FUNCTION__ 在Visual St转载 2011-09-29 08:50:07 · 662 阅读 · 0 评论 -
C/C++编译过程详解
http://www.shouyanwang.org/thread-148-1-1.html C/C++语言很多人都比较熟悉,这基本上是每位大学生必学的一门编程语言,通常还都是作为程序设计入门语言学的,并且课程大多安排在大一。刚上大学,孩子们还都很乖,学习也比较认真,用心转载 2011-10-14 10:49:47 · 812 阅读 · 0 评论 -
关于Linux静态库和动态库的分析
1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经转载 2011-10-26 17:40:10 · 451 阅读 · 0 评论 -
Linux中errno使用
http://apps.hi.baidu.com/share/detail/15650261 当linux中的C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因,在实际编程中用这一招解决了不少原本看来莫名其妙的问题。但是errno是一个数字,代表的具体含义还要到errno.h中去阅读宏转载 2012-01-08 13:05:42 · 795 阅读 · 0 评论 -
Linux大文件使用
http://blog.csdn.net/lsk_30516/article/details/4201599支持大文件的两种方式:1、gcc 加 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE2、注意一定要定义在include之前#define _LARGEFILE_SOURCE#define _LARGEFILE64_SOURCE转载 2012-01-04 19:25:40 · 527 阅读 · 0 评论 -
ar 命令基本用法[转载] .
http://blog.csdn.net/ferrarild/article/details/6939536 当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍两个命令ar和nm,用来对库操作。ar基本用法 当我们的程序中有经常使用的模块,而且转载 2012-02-21 15:34:25 · 841 阅读 · 0 评论 -
C语言返璞归真之修改const常量和使用变量定义数组长度
http://hi.baidu.com/deep_pro/blog/item/f793d655f9a7baceb645ae08.html 首先要说,c语言是对汇编的简单封装,c语言的标准不能囊括所有程序员尝试的奇怪行为,标准之外的事情,那就没准了所以这里说的两种情况也是编译器相关的,如同i+++i 和++i++ 一样是没有实际意义的东西可以拿来忽悠忽悠菜鸟,装成一副大牛的样子转载 2012-02-22 19:43:52 · 4424 阅读 · 0 评论 -
GCC and C99 inline .
http://superding.spaces.live.com/Blog/cns!89E842A8485366C7!1137.entryhttp://www.greenend.org.uk/rjk/2003/03/inline.htmlC语言的inline转以前我用Docbook写的一篇关于C语言inline关键字使用的文章。唉,要是能用docbook直接写Blog就好了。用转载 2012-02-17 13:31:22 · 658 阅读 · 0 评论 -
RTMP协议以及提取RTMP视频流组成H264视频文件
http://blog.csdn.net/iamwangch/article/details/8673447转载自:http://blog.csdn.net/cssmhyl/article/details/8128478首先我们获得h264的流,在监听里,我们通过参数可以获得RTMP包 IStreamPacket,调用getData()方法直接获得包数据转载 2016-11-16 20:42:03 · 9333 阅读 · 1 评论