自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别

原文  http://typecodes.com/cseries/gcclderrlibrarypath.html主题 GCC 动态库 Linux昨天在自己的CentOs7.1上写makefile的时候,发现在一个C程序在编译并链接一个已生成好的lib动态库的时候出错。链接命令大概是这样的:[root@typecodes tcpmsg]# gcc -o hello ma

2017-05-16 10:05:35 6015 1

转载 Buildroot制作根文件系统过程(基于MYD-AM335X开发板)

buildroot的功能很强大,可以利用它制作交叉编译工具链、根文件系统,甚至可以构建多种嵌入式平台的bootloader、linux。下面以米尔科技的MYD-AM335X平台为例展示如何利用buildroot制作自己所需的根文件系统。一、到官网下载源码:http://buildroot.uclibc.org/downloads/ 我这里选用的是buildroot-2014.05.tar.

2017-05-12 15:23:13 4740

转载 beaglebone black tftp与nfs挂载根文件系统

原文链接: http://blog.csdn.NET/zy812248258/article/details/39291835我的板子是beaglebone black  rev.c启动方式: 在win下用am335x-evm-01.00.00.00.img.zip里的镜像烧写到tf卡里 从tf卡启动TI SDK版本:  http://software-dl.ti.co

2017-05-12 09:24:27 1029

转载 Makefile 使用总结

1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 

2017-05-09 16:43:44 490

转载 ubuntu下配置TFTP服务器,用以ubuntu下烧写内核到ARM开发板

ubuntu下配置TFTP服务器,用以ubuntu下烧写内核到ARM开发板            在学习练习嵌入式内核的移植的时候,内核可以有通过 1.sd卡烧写;2. usb烧写 ;3. 基于TFTP协议的网线烧写。但是,在开发的时候,最方便的方式还是TFTP配合u-boot烧写内核,因为sd卡在PC机和ARM板之间移来移去不方面,通常sd卡用于一键烧写完整的linux系统到开发板(

2017-05-09 11:15:56 1135

转载 如何判断两个IP是否在同一网段

大学的时候有上过计算机网络的课程,IP这块也有一些接触,但向来不是很好学的我,对于一些问题似是而非的态度,感觉知道,但具体的又说不上,今天就花了点时间彻底把这个问题搞清楚,写在这也算是做个记录吧!接下来我们举例说明,如何去判断A和B两个IP是否在同一网段。       A IP:202.194.128.9       B IP:202.194.128.14       子网

2017-05-09 11:09:53 6524 1

转载 字符编码: UTF8 和 ANSI 的区别分析

字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到1

2017-05-05 13:41:08 711

转载 thrift安装

# Windows版本编译## boost库的windows版编译与安装(参照http://blog.csdn.net/yansmile1/article/details/70327835)  boost使用1.62.0版本,下载地址:https://sourceforge.net/projects/boost/files/boost/1.62.0/boost_1_62_0.zip

2017-04-21 16:25:13 452

转载 C++ Boost在Windows和Linux下的编译安装

C++作为历史上最成功的语言之一,除了它具有面向对象的性质之外,还有一个非常重要的创新,那就是泛型编程。泛型的思想其实是为所有问题提供一个解决方案的模版,程序员只需把每次的具体问题放到模版里面,那么就可以获得该问题的解决方案,利用模版做到具体问题具体分析。C++ STL毫无疑问是泛型思想的一个成功案例。在STL中,我们看到各种封装好的数据结构和算法,而不需要程序员再重复制造轮子(何况自己造的轮子还

2017-04-21 16:24:32 3414

转载 Window7下安装openssl完整版(亲测实现)

安装环境:操作系统:window7(64位)C++编译器:VS2010---------------------------------------------------------------------------------------------------------------------------------------------------------------

2017-04-21 16:17:49 950

转载 Makefile经典教程(掌握这些足够)

该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和profes

2017-04-20 13:55:47 705

转载 使用Google Test的一个简单例子(接合上一篇看)

0. 引子 本例是从 gtest-1.5.0 自带的 sample 中的 sample1 改写而来,笔者只添加了一个求 n 的阶层的函数,如下。void Factorial(int n, int & result ){    result = 1;    for (int i = 1; i         result *= i;}目的是想测试像这样

2017-04-20 11:57:25 864

转载 Google Test测试框架自带Sample案例注释翻译

有一段时间没写博客了,前些时间闲下来看了下google test(gtest)测试框架自带的sample测试样例,感觉还不错,就对里面的注释进行了相关翻译,在此做个标录,对测试流程、方法和设计的理解会有些帮助,方便日后重新查阅,有兴趣的同志不妨看一下相关说明:     1、项目工程可到附件中下载     2、项目工程在visual studio2005环境下编译运行的

2017-04-20 11:54:54 2439

转载 thrift C++做server, C++,python, java做Client例子

一、安装我机器上已经安装好了 thrift-0.9.1二、示例编辑demo.thrift文件,内容如下:struct UserProfile{        1:i32 id, //注意这里是逗号,而不是分号        2:string name,        3:string blurb} //这里没有分号 servi

2017-04-20 10:36:57 451

转载 C 语言 switch 语句

在有多个选择分支条件的情况下,用if 语句难免会繁琐且效率不高,此时便是switch语言的用武之地。     int  i=1;     switch(i){    case 0:             printf("0");    case 1:            printf("1");    case 2:           printf("2"

2017-04-17 11:02:33 650 1

转载 使用if和goto语句构造循环

goto是C/C++中一种非常古老的保留字,goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。if语句和goto语句搭配使用可以构造循环,if语句作为循环的条件判断,goto用来跳转以反复执行某些语句(循环体)以达到循环执

2017-04-17 10:59:10 5614

转载 GNU C与ANSI C

Linux上使用的C编译器是GNU C编译器,其对标准的C(ansi c)进行了一定的扩展,这带来的影响是两方面的。一方面增强了其原来的没有的功能,另一方面却对要编写移植性要求较高的程序带来了一些问题。对于后一个问题,在编写程序时,建议是如果在ANSI C中也提供的同样的功能时,尽量使用ANSI C来实现,当然如果不考虑程序的移植性,比如说,我们就是要在一个产品上写一段代码,那就不需要考虑这些

2017-04-17 10:57:29 309

转载 Linux2.6所有内核下载地址

http://www.kernel.org/pub/linux/kernel/v2.6/Index of /pub/linux/kernel/v2.6Name Last modified Size Parent Directory - incr/

2017-04-14 14:11:37 4607

转载 Linux内核“问题门”——学习问题、经验集锦(持续更新中……)

推荐下载:《Linux内核修炼之道》精华版之方法论 陈宪章说:“学贵有疑,小疑则小进,大疑则大进。疑者,觉悟之机也,一番觉悟一番长进。”培根说:“多问的人将多得。”还在学校的时候导师在激情讲演之后对着会议室里形态各异但均静默不语的我们痛心疾首的说:“会提问题很重要啊,同志们!不会提问题怎么有资格做研究!”这样铿锵有力的训诫今日想起仍觉深受刺激,于是就要不可避免得要做出一些反应来

2017-04-13 10:40:38 435

转载 和菜鸟一起学linux内核源码之基础准备篇

注:以下大部分内容摘自Linux内核编程入门篇和linux内核完全注释        在工作的这段时间,发现我的visio画图熟悉了点点,总喜欢把什么源码啊,结构啊之类的就当作流程图来画来理解,因为对于图,有一个很直观的认识,所以接下去也是以图为中心。 关于linux内核体系结构       说到操作系统,我们都会知道windows操作系统,linux操作系

2017-04-13 10:33:45 14410 2

转载 Source Insight入门教程

Source Insight入门教程转载自:http://www.cnblogs.com/olvo/archive/2012/05/04/2483424.html 进入到Temp Project窗口分别可以以文件列表的方式,列出所有的文件,每个窗体下边有一排按钮,左边的窗口(secondView.cpp)从左至右分别为:按字母顺序排列所有标记、按照文

2017-04-13 10:01:11 1885

转载 double数据的内存存储方式

从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储更高的精度。         任何数据在内存中都是以二进制(0或1)顺序存储的,每一个1或0被称为1位,而在x86CPU上一个字节是8位。比如一个16位(2字节)的short int型变量的值是1000,那么它的二进制表达就是:00000011 111

2017-04-12 18:41:32 32291 3

转载 C语言atoi()函数:将字符串转换成int(整数)

头文件:#include atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str);【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并

2017-04-05 16:40:19 552

转载 CString与string、char*的区别和转换

我们在C++的开发中经常会碰到string、char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆。下面详细介绍这三者的区别、联系和转换:各自的区别char*:char*是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址(首字符的地址)。我们更多的时候是用的它的第二的功能,来

2017-04-05 16:08:37 270

转载 【STL】string中c_str()、data()函数的用法

标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。1. c_str():生成一个const char*指针,指向以空字符终止的数组。注:①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效。因此要么现用先转换,要么把它的数据复制到用户自己可以管理的内存中。注意。看下例:

2017-04-05 15:42:36 15791 1

转载 CString/string 区别及其转化

CString/string 区别及其转化利用MFC进行编程时,我们从对话框中利用GetWindowText得到的字符串是CString类型,CString是属于MFC的类。而一些标准C/C++库函数是不能直接对CString类型进行操作的,所以我们经常遇到将CString类型转化char*等等其他数据类型的情况。这里总结备忘于此!首先要明确,标准C中是不存在strin

2017-04-05 15:18:49 381

转载 C++ 中 ZeroMemory、memset 危险需慎用

使用C/C++编程时,常使用ZeroMemory、memset或 “={0}”来对结构体对象进行初始化或清零。然而这三种方式都有各自的特点,使用时需谨慎,否则容易出现严重错误,本人今日解决一个导致宕机的bug,查了几小时,才发现是由同事乱用ZeroMemory所致。于是搜集资料,撰此文以共勉。memsetvoid *memset(void *s,int ch

2017-04-05 13:52:20 324

转载 TCP通信粘包问题分析和解决(全)

在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小、数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。对于UDP,不会使用块的

2017-03-28 14:46:43 755 1

转载 c++ vector begin(),end(),rbegin(),rend()问题

C++ primer (中文版第四版)第273页9.3.2 begin和end成员        begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。c.begin() 返回一个迭代器,它指向容器c的第一个元素c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一个位置

2017-03-24 16:00:45 1516 1

转载 select 与 fd_set

select(),确定一个或多个套接口的状态,本函数用于确定一个或多个套接口的状态,对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息,用fd_set结构来表示一组等待检查的套接口,在调用返回时,这个结构存有满足一定条件的套接口组的子集,并且select()返回满足条件的套接口的数目。用途:确定一个或多个套接口的状态,如需要则等待。[cpp

2017-03-23 11:36:33 324

转载 socket原理详解

1、什么是socket我们知道进程通信的方法有管道、命名管道、信号、消息队列、共享内存、信号量,这些方法都要求通信的两个进程位于同一个主机。但是如果通信双方不在同一个主机又该如何进行通信呢?在计算机网络中我们就学过了tcp/ip协议族,其实使用tcp/ip协议族就能达到我们想要的效果,如下图(图片来源于《tcp/ip协议详解卷一》第一章1.3)         、     

2017-03-23 11:35:33 324

转载 BOOST 线程完全攻略 - 基础篇

C++多线程开发是一个复杂的事情,mfc下提供了CWinThread类,和AfxBeginThread等等函数,但是在使用中会遇到很多麻烦事情,例如线程之间参数传递的问题,我们一般都是把参数new一个结构体,传递给子线程,然后释放的工作交给了子线程,这样不可避免会有内存泄漏的危险,例如线程关闭的问题,我们一般用WaitForSingleObject来完成线程关闭工作,但是这个函数并不一定保证线程能

2017-03-21 13:51:42 447

转载 boost库中thread多线程详解5——谈谈线程中断

线程不是在任意时刻都可以被中断的。如果将线程中函数中的sleep()睡眠等待去掉,那么即使在主线程中调用interrupt()线程也不会被中断。thread库预定义了若干个线程的中断点,只有当线程执行到中断点的时候才能被中断,一个线程可以拥有任意多个中断点。thread库预定义了共9个中断点,它们都是函数,如下:1. thread::join();2. thread::time

2017-03-06 16:28:04 1013 1

转载 boost::make_shared

shared_ptr很好地消除了显式的delete调用,如果读者掌握了它的用法,可以肯定delete将会在你的编程字典中彻底消失。但这还不够,因为shared_ptr的构造还需要new调用,这导致了代码中的某种不对称性。虽然shared_ptr很好地包装了new表达式,但过多的显式new操作符也是个问题,它应该使用工厂模式来解决。因此,shared_ptr在头文件 中提供了一个自由工厂函数

2017-03-06 16:27:15 1785

转载 对于linux下system()函数的深度理解(整理)

这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用要能不用则不用,system()函数不稳定? 

2017-03-02 20:06:28 280

转载 C++中string与char*相互转换

一、string转换为char*有3中方法:1.datastring str="good boy";constchar *p=str.data();2.c_strstring str="good boy";constchar *p=str.c_str();3. copystring str="good boy";char p[20];st

2017-03-02 20:03:02 507

转载 C++仿函数(functor)

摘要: c++仿函数(functor)概念及应用什么是仿函数(functor)    functor的英文解释为something that performs a function,即其行为类似函数的东西。C++中的仿函数是通过在类中重载()运算符实现,使你可以像使用函数一样来创建类的对象。仿函数(functor)的实现及使用// this is a functors

2017-02-28 16:38:19 5157

转载 我的Protobuf消息设计原则

网络通信涉及到消息的定义,不管是使用二进制模式、xml、json等格式。消息都可以大体的分为 命令消息、请求消息、应答消息和指示消息4大消息类型。一般情况下每个消息还还有包含一个序列号和一个能够唯一区分类型类型的消息编号,编号可以使用字符串、整数或者枚举等。1. 使用 protobuf 的enum定于消息的编号,也就是消息的类型。我会为每个系统都定义一个MSG枚举。包含系统用到的所有消

2017-02-27 17:21:12 1068

转载 google protobuf序列化原理

一个message,序列化时首先就算这个message所有filed序列化需要占用的字节长度,计算这个长度是非常简单的,因为protobuf中每种类型的filed所占用的字节数是已知的(bytes、string除外),只需要累加即可。这个长度就是serializedSize,32为integer,在protobuf的某些序列化方式中可能使用varint32(一个压缩的、根据数字区间,使用不同字节长

2017-02-27 17:20:34 12528 1

转载 计算结构体的大小(对齐)

结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。看下面这样的一个结构体:  struct stu1  {  int i;  char c;  int j;  };  先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址

2017-02-27 16:24:43 282

新一代视频压缩编码标准H.264.rar

新一代视频压缩编码标准H.264书籍,为毕厚杰老师经典作品

2019-07-29

详解spice.rar

spice协议详解,书籍保护目录,很经典的查询资料,

2019-07-29

空空如也

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

TA关注的人

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