自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (4)
  • 收藏
  • 关注

转载 autotools使用说明

最近开始学习linux c开发,对autotools比较感兴趣,所以找了一些国外的文档看了看,然后自己做了小例子,在这里跟大家分享。  1、准备:     需要工具autoscan aclocal autoheader automake autoconf make 等工具.  2、测试程序编写:     建立目录:mkdir include src     编写程序:inclu

2013-11-29 17:14:29 564

转载 内存管理内幕

为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。追溯到在 Apple II 上进行汇编语言编程的时代,那时内存

2013-10-18 10:32:30 1180

转载 linux内核3

结束动作。ldconfig –r workdir/rootfs(试验文件系统目录) 建立库文件路径缓存 ,从此命令再使用动态连接库时就不必指定目录了,因为它们的路径都被缓存了。(ldconfig 要用动态库配置文件ld.so.conf,试验系统中置空它好了)安装根文件系统——内核和root文件系统绑定别混淆,刚刚我们做的是文件系统应该包含的文件。具体文件系统现在才开始做。上面说了需要在系统

2013-09-10 16:50:49 698

转载 linux内核2

各种shell程序各有特点,功能也有强又弱,但是相同点都需要能够执行程序或命令;能够处理程序或命令的输入输出;能够执行shell脚本。(shell 能执行三种不同概念的文件:1命令指shell程序自己内置的基本命令——如 cd 命令,管道 | 命令 >重定向命令——和以二进制文件形式存在的系统命令——如ls cp等。2  程序指用户安装和编译身成的二进制文件;3脚本指包含逻辑关系的程序和命令序列)

2013-09-10 16:48:21 743

转载 linux 系统内核讲解

走进Linux 操作系统摘要:本期涉猎了操作系统的来龙去脉后与大家携手步入Linux世界。我们力图展示给大家一幅Linux系统的全景图,并为了加深对linux系统的全面认知,亲手搭建了一个能运行在内存中的试验系统。同时为大家提供了几个shell脚本帮助建立试验系统。最熟悉的陌生人用萧亚轩的一首歌形容操作系统给我们的感觉再合适不过了,“最熟悉的陌生人”。说熟悉,因为几乎每天我

2013-09-10 14:41:23 1966 1

转载 Win32平台下OpenSSL编写SSL,TLS程序

一、简介:SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版.TLS(Transport Layer Security)是IETF的TLS 工作组在SSL3.0基础之上提出的安全通信标准,目前版本是1.0,即RFC2246.SSL/TLS提供的安全机制可以保证应用层数据在互联网络传输不 被监听,伪造和窜改.

2013-07-26 10:47:43 1026

转载 centos下安装libevent

1.下载安装包新版本是libevent-2.0.10-stable。(如果你的系统已经安装了libevent,可以不用安装)官网:http://www.monkey.org/~provos/libevent/下载:http://www.monkey.org/~provos/libevent-2.0.10-stable.tar.gz2.解压 # tar zxvf libevent

2013-07-11 10:12:46 1210

转载 c++ map中key为类对象或结构体

C++实际开发的过程会经常使用到map。map是一个key-value值对,key 唯一,可以用find进行快速的查找。其时间复杂度为O(logN),如果采用for循环进行遍历数据时间复杂度为O(N)。如果map中的数据量比较少 时,采用find和for循环遍历的效率基本没有太大的区别,但是在实际的开发过程中,存储在map中的数据往往是大量的,这个时候map采用find方式效率比遍历效率高的多。

2013-05-19 16:40:06 6613 2

转载 C++ 智能指针详解

一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::share

2013-05-16 14:28:44 460

转载 高质量C++/C编程指南

文件状态[ ] 草稿文件[√] 正式文件[ ] 更改正式文件 文件标识: 当前版本: 1.0作 者: 林锐 博士完成日期: 2001年7月24日版 本 历 史版本/状态 作者 参与者 起止日期 备注V 0.9草稿文件 林锐 2001-7-1至2001-7-18 林锐起草V 1.0正式文件 林锐 2001-7-18至2001-7-24 朱洪海审查V 0.9,林锐修正草

2013-05-15 09:10:13 1358

转载 C++中的单例模式——设计模式

C++中的单例模式 单例模式很有用,使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。但是在程序的开发过程中我们总是遇到一些问题,而这些问题主要集中在单例类的消毁过程中,普通使用的单例模式的类如下:class Singleton:{    // 其它成员public:    static Singleton * Get

2013-05-15 08:56:34 380

转载 c++ 类型转换

C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类

2013-05-10 15:04:48 444

转载 c++ const的其他修饰用法

1.const修饰函数返回值const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。(1) constintfun1() 这个其实无意义,因为参数返回本身就是赋值。(2) constint*fun2() 调用时 constint*pValue =fun2();我们可以把fun2()看作成一个变量,那么就是我们上面所

2013-05-09 11:33:10 603

原创 c++内联函数inline

内联函数的注意事项:   1.在内联函数内不允许用循环语句和开关语句。   2.内联函数的定义必须出现在内联函数第一次被调用之前。在类中的函数声明时,后跟大括号直接将函数体实现的默认就是内联函数。内联函数的优点:我们可以把它作为一般的函数一样调用,但是由于内联函数在需要的时候,会像宏一样展开,所以执行速度确比一般函数的执行速度要快。当然,内联函数也有一定的局限性。就是函数中的执

2013-05-09 11:21:48 593

原创 c/c++ 自己对const修饰指针的理解

/* //const 修饰的*pth,所以对pth指针所指向的内存,是const的,但是指针本身可以变(即可以指向别的变量) int a=10;  int b=11; const int *pth; pth=&a; pth=&b; //与上面一样 int a=10;  int b=11; int const *pth; pth=&a; pth=&b;

2013-05-09 10:36:23 556

原创 pc-lint静态代码分析工具(检查linux下C++代码的实现方式)

最近公司让看一下代码分析工具,说了一个pclint,网上看了一下,pc-lint只是在windows下使用的东西,还可以结合开发工具,挺好的,但是让我苦恼的是本人的代码是在linux下用C和C++结合写的,这下就苦逼了。又去网上游呀游。于是找到了splint,在虚拟机上装了一下,兴高采烈的以为可以了,结果又苦逼了,仔细看了一下,splint只能检查纯C的代码,对于有string的东西,它都会报错!

2013-04-28 15:49:05 8809 1

转载 在LINUX下探测硬件信息命令大全

在LINUX下探测硬件信息的命令查看服务器的机器型号和序列号: dmidecode | grep "Product"用硬件检测程序kudzu探测新硬件:service kudzu start ( or restart)查看CPU信息:cat /proc/cpuinfo查看板卡信息:cat /proc/pci查看PCI信息:lspci (相比cat /proc/pci更直观)

2013-04-25 10:53:50 1243

转载 SecureCRT脚本编写心的(一)

作为维护CE设备的一个普通工程师,可能会有同样的问题困惑着我们——如何对众多的CE设备进行有效的巡检和维护管理?SecureCRT给我们提供了很好的平台——脚本工具制作和运行。下面就SecureCRT工具常用到的几个函数阐述如下:     在SecureCRT里,用得最多的应该就是crt.Screen,基本上很多操作都是基于屏幕的返回字来决定下一步该作何操作:第一:crt.Screen.W

2013-04-23 18:56:49 3993

转载 Linux SVN 服务器配置以及客户端使用

SVN简介SVN是一种版本管理系统,前身是CVS,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱的情况,版本管理系统就是为了解决这些问题。SVN中的一些概念 : a. repository(源代码库)源代码统一存放的地方 b. Checkout (提取)当你手上没有源代码的时候,你需要从repository checkout一份

2013-04-15 09:10:47 549

转载 linux下svn不能连接上windows服务器:SSL handshake failed: SSL 错误:在证书中检测到违规的密钥用法

之前已经在windows2003上用visualSVN配置好了SVN服务器,并且在windows虚拟机的客户端可以正常使用。    但是,今天在unbuntu11.10上尝试运行svn,就装了一个subversion.但是使用时报了类似下面的错:svn: 方法 OPTIONS 失败于 “https://1.0.0.2:8443/svn/xxx”: SSL handshake faile

2013-04-15 09:08:20 1157

转载 嵌入式Linux串口通讯的C++设计

嵌入式Linux主板EM9160提供了6个标准异步串口:ttyS1——ttyS6,其中ttyS4、ttyS5、ttyS6和GPIO的管脚复用,每个串口都有独立的中断模式,使得多个串口能够同时实时进行数据收发。各个串口的驱动均已经包含在嵌入式Linux操作系统的内核中,EM9160在嵌入式Linux系统启动完成时,各个串口已作为字符设备完成了注册加载,用户的应用程序可以以操作文件的方式对串口进行读写

2013-04-03 11:32:35 5475

转载 Linux下的UDP通信

由于UDP通信不需要事先建立连接,因此不需要TCP中的connect函数。服务器端的步骤如下:1. socket:      建立一个socket2. bind:          将这个socket绑定在某个端口上(AF_INET)3. recvfrom:  如果没有客户端发起请求,则会阻塞在这个函数里4. close:        通信完成

2013-04-01 22:13:57 740

转载 Linux下getsocketopt 与 setsocketopt函数说明

功能描述:        获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#include

2013-03-28 08:49:55 6020

转载 Linux下的串口编程

前面已经提到过Linux下皆为文件,这当然也包括我们今天的主角àUART0串口。因此对他的一切操作都和文件的操作一样(涉及到了open,read,write,close等文件的基本操作)。一.Linux下的串口编程又那几部分组成  1.    打开串口2.    串口初始化3.    读串口或写串口4.    关闭串口二.串口的打开既然串口在linux中被看

2013-03-26 14:51:26 586

原创 unix下的网络编程学习(tcp连接和终止的过程)

网络编程首先要求确定这些程序如何彼此通信的协议(protocol),客户与服务器之间的通信涉及网络通信协议。我主要研究的是tcp/ip协议族。也叫网际协议族。展现在用户进程即应用层上的协议成为应用协议,在传输层上是tcp协议,网络层上是ip协议,数据链路层上是以太网协议。tcp:传输控制协议。是一种面向连接的协议,他给用户进程提供可靠的全双工的字节流,tcp套接口是流套接口的一种。tcp关心诸如确

2013-03-20 19:25:48 573

转载 Linux 多线程应用中如何编写安全的信号处理函数

Linux 多线程应用中编写安全的信号处理函数在开发多线程应用时,开发人员一般都会考虑线程安全,会使用 pthread_mutex 去保护全局变量。如果应用中使用了信号,而且信号的产生不是因为程序运行出错,而是程序逻辑需要,譬如 SIGUSR1、SIGRTMIN 等,信号在被处理后应用程序还将正常运行。在编写这类信号处理函数时,应用层面的开发人员却往往忽略了信号处理函数执行的上下文背景,没有考

2013-03-14 09:23:05 486

原创 pthread_cond_write

1 #include     2 #include     3 #include     4 #include     5      6 pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/    7 pthread_cond_t  cond = PTHREAD_COND_INITIALIZER;//init cond

2013-03-13 16:50:56 502

转载 C#图像凸透镜简单实现

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Sy

2013-01-25 15:17:24 394

原创 linux ——文件和目录

函数原型#include int stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。int fstat(int filedes, struct stat *buf);通过文件描述符获取文件对应的属性。int lstat(const char *restrict pat

2013-01-24 16:15:47 284

原创 linux——system V 消息队列(实例)

消息队列就是具有足够权限的任何进程都可以往一个给定队列中放置一个消息,具有足够特权的任何进程都可以从一个给定队列中读出一个消息。在某个进程往一个队列中邪热一个消息之前,不求另外某个进程中在等待该队列上一个消息的到达。       消息队列可以视为一个消息链表。       相关函数为:  1,int msgget(key_t key,int oflag),该函数用于创建一个新的队列或访

2013-01-24 14:06:34 806

原创 linux--fifo(单个服务器,多个客户端实例)

//client#include #include "App.h"#include "stdio.h"#include "sys/types.h"#include "sys/stat.h"#include "fcntl.h"#include "string.h"#define FIFO "/home/flc/srvfifo.tmp"using namespace

2013-01-23 14:50:26 746

原创 linux———FIFO的学习及实例

FIFO(先进先出)命名管道,用于无关系进程间的通信,因为Linux中所有事物都是文件,它在文件系统中以文件名的形式存在。           创建管道用函数(const char * pathname,mode_t mode);函数说明:pathname参数为创建实名文件的绝对地址。参数mode为该文件的权限。           1、当使用O_NONBLOCK 旗标时,打开FIFO 文

2013-01-23 10:21:15 1156

转载 C语言编程技巧-signal(信号)

信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出一些基本的信

2013-01-16 10:33:38 1019

原创 UNIX Fork函数的理解

在编写并发服务器程序之前,对fork函数的理解是必不可少的。         如果从未接触过该函数,那么理解fork的最困难之处就在于调用它一次。但是却返回二次。它在调用进程中返回一次。返回值为新派生进程的进程ID,在子进程中返回一次。返回值为0,由此返回值可以作为判断当前进程是子进程还是父进程。        fork返回的是子进程的进程ID而不是父进程的Id的原因在于:在子进程中可以使

2013-01-14 16:43:12 890 2

转载 Linux 多线程通信

线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用。不过要注意的是线程间需要做好同步,一般用mutex。可以参考一些比较新的UNIX/Linux编程的书,都会提到Posix线程编程,比如《UNIX环境高级编程(第二版)》、《UNIX系统编程》等等。 linux的消息属于IPC,也就是进程间通信,线程用不上。linux用pthread_ki

2013-01-14 15:56:30 281

原创 UNIX网络编程之旅-配置unp.h头文件环境

最近在学UNIX下的网络编程,所以就找来一本UNIX网络编程看了看。结果刚看到第一章的第一个例子的时候傻眼了。unp.h,貌似没见过,百度百科后知道是要自己下载的,所以就试试了。我分为3步。1,先从网上下载一个叫unpv.13e.tar.gz的东东。2,解压后make。(解压后在终端下进入解压后的目录下。执行下面的命令行)     (1)  ./configure      (

2013-01-14 15:07:18 861

pc-lint代码静态分析工具

静态代码检查工具。试了一下splint,是可以装在linux下检查代码,但是有不足的地方就是splint只能检查纯C的代码,要想检查C++那就得用pc-lint了,虽然配起来有点麻烦,但是还是能成功的。

2013-04-28

linux 串口封装类

linux 串口封装基类,包括数据接收线程,和数据处理虚函数。通过用epoll实现异步处理。该文件是压缩文件,在windows下解压,我是用eclipse for C++在linux编程实现的,该文件夹是一个工程文件。

2013-04-07

线程 + epoll

实现了客户端和服务器的通信!(通过newserver实现了newclient和mgserver之间的通信)。首先修改newclient和mgserver代码中的IP,然后编译成功后,先运行newserver,然后运行mgserver,再运行newclient。通过newclient发送数据,newserver转发数据,mgserver收到数据。然后回传!

2013-02-04

linux tinyxml读写xml

实现了在linux 下使用tinyxml读写xml文件 在虚拟机中由于内存的原因 字节点只能加到100万条 但是在服务器上测试 加到1000w条 没什么问题 唯一的问题就是在在读写xml时必须将xml文件全部灌入内存 如果xml文件小的话没什么问题 但是如果太大 内存就会吃紧

2013-02-04

空空如也

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

TA关注的人

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