自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 OpenSSL 常用证书操作函数

现有的证书大都采用X。509规范, 主要同以下信息组成:版本号、证书序列号、有效期、拥有者信息、颁发者信息、其他扩展信息、拥有者的公钥、CA对以上信息的签名。 OpenSSL实现了对X。509数字证书的所有操作。包括签发数字证书、解析和验证证书等。涉及证书操作的主要函数有验证证书(验证证书链、有效期、CRL)、解析证书(获得证书的版本、序列号、颁发者信息、主题信息、公钥、有效期等) 主要函数1、D

2011-06-27 14:19:00 9025

转载 关于malloc和free的讨论

来自bc-cn C语言论坛一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函

2011-06-24 10:49:00 754

原创 Linux中的MySQL使用(CentOS默认安装)

<br />一.修改/etc/my.cnf文件<br />default-character-set=utf8<br />[mysqld]<br />datadir=/var/lib/mysql<br />socket=/var/lib/mysql/mysql.sock<br />user=mysql<br /># Default to using old password format for compatibility with mysql 3.x<br /><br /><br /># clients

2011-05-27 15:00:00 3009

原创 How to generate certificate

<br /> <br />        HOWTO certificates<br />1. Introduction<br />How you handle certificates depend a great deal on what your role is.<br />Your role can be one or several of:<br />  – User of some client software<br />  – User of some server software<br

2011-03-31 10:34:00 1892

原创 PKI/CA

<br />SSL 安全协议最初是由美国网景 Netscape Communication 公司设计开发的,全称为:安全套接层协议 (Secure Sockets Layer) , 它指定了在应用程序协议 ( 如 HTTP 、 Telnet 、 FTP) 和 TCP/IP 之间提供数据安全性分层的机制,它是在传输通信协议 (TCP/IP) 上实现的一种安全协议,采用公开密钥技术,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。 <br /><br /> 最简单地讲:服

2011-03-31 10:34:00 4349

原创 OpenSSL生成证书

<br /><br />要生成证书的目录下建立几个文件和文件夹,有./demoCA/ ./demoCA/newcerts/ ./demoCA/index.txt ./demoCA/serial,在serial文件中写入第一个序列号“01”<br />1.生成X509格式的CA自签名证书 <br />$openssl req -new -x509 -keyout ca.key -out ca.crt<br /> <br />2.生成服务端的私钥(key文件)及csr 文件 <br />$openssl gen

2011-03-18 16:57:00 1904

原创 一些特定的shell变量

<br /><br />$#  传递到脚本的参数个数<br />$*  以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过 9 个<br />$$  脚本运行的当前进程 ID 号<br />$!  后台运行的最后一个进程的进程 ID 号<br />$@  与 $# 相同,但是使用时加引号,并在引号中返回每个参数<br />$-  显示 shell 使用的当前选项,与 set 命令功能相同<br />$?  显示最后命令退出的状态。0 表示没有错误,其他任何值表明有错误

2011-03-09 13:53:00 534

原创 Linux下安装OpenSSL

<br /><br />OpenSSL库的安装<br />官网:http://www.openssl.org<br />下载页面:http://www.openssl.org/source/<br />选择最新版本下载<br />http://www.openssl.org/source/openssl-1.0.0a.tar.gz<br />解压:<br />tar –zxvf openssl-1.0.0d.tar.gz,解压目录为:openssl-1.0.0d<br />然后进入到 cd openssl-

2011-03-09 09:30:00 5602 4

原创 文件与目录权限以及umask

系统默认情况下建立文件与目录的权限是:#vi /etc/bashrc 可以看到一般用户的umask是002  root用户是022说明:一般用户默认建立文件权限是666-002=664   建立目录权限是777-002=775root默认建立文件的权限就是666-022=644   建立的目录权限就是777-022=755

2011-03-07 17:02:00 896

原创 链表反转的两种实现方法

<br />源码如下<br /><br />struct LinkerData<br />{<br />LinkerData* pNext;<br />int n;<br />LinkerData()<br />{<br />pNext = NULL;<br />n = 0;<br />}<br />};<br /><br />class CLinker<br />{<br /><br />public:<br />CLinker();<br />virtual ~CLinker();<br /><br /

2011-02-21 22:54:00 591

原创 链表的各种操作

<br />typedef struct lnode {<br /> elem data;<br /> struct lnode *next;<br />}lnode ,*linklist;<br /> //建立一个链式表 向表中加入数据<br />status listset(linklist &head){ <br /> int n=0;<br /> elem x=2;<br /> linklist p1,p2;<br /> p2=p1=(linklist)mal

2011-02-21 22:30:00 684

原创 字符串倒序反转程序

#include #include #include //方法一:将第一个字符和最后一个互换,第二个和倒数第二个互换,如此一次循环下去char *strrev1(const char *str){int len = strlen(str);char *tmp = (char*)malloc(len + 1);strcpy(tmp,str);int i = 0;for (i = 0; i {char c = tmp[i];tmp[i] = tmp[len-i-1];tmp[len-i-1] = c;}retu

2011-01-21 17:41:00 9642 1

原创 Linux中,如何标识接在IDE0上的slave硬盘的第2个扩展分区

<br /><br />应该为/dev/hdb6,主分区1~4,必须预留,所以你的拓展分区应该从hdb5开始!<br />IDE1的第1个硬盘(master) /dev/hda <br />IDE1的第2个硬盘(slave) /dev/hdb <br />IDE2的第1个硬盘(master) /dev/hdc <br />IDE2的第2个硬盘(slave) /dev/hdd <br />SCSI的第1个硬盘 /dev/sda <br />SCSI的第2个硬盘 /dev/sdb<br /><br />即第一个

2011-01-21 11:01:00 7751 2

原创 什么是交叉编译?

<br /><br />在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linu

2011-01-18 12:34:00 715

原创 什么是驱动程序?

<br />什么是“驱动程序”呢?驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。操作系统不同,硬件的驱动程序也不同,各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia 显卡芯片公司平均每个月会升级显卡驱动程序2-3次。驱动程序是硬件的一部分,当你安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于你电脑

2011-01-18 11:12:00 568

原创 通过硬件ID精确寻找驱动--摄像头ID篇

<br />什么是硬件ID呢? 硬件ID是电脑所有硬件的一个编号,所有设备都有如下编号:VEN_1106&DEV_3038,VEN代表硬件厂商,DEV代表产品编号。USB设备会有如下编号:VID_045E&PID_0039,道理跟上面的是一样的。所有的测试软件都有可能会出错,只有硬件ID是最可靠的,各位只要确认下INF文件包含需要的硬件ID,就保证是可以用的。 如何获得硬件ID? 最简单的方法是直接在设备管理器中查看。右键“我的电脑” --- 管理(第四个

2011-01-18 10:06:00 5361

原创 C语言关键字volatile

<br /><br />C语言关键字——volatile。在程序员面试宝典中提到“关键字volatile的面试例题是考查嵌入式编程”,中间有一段解析:<br />回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。搞嵌入式的家伙们经常同硬件、中断、RTOS等等打交道,所有这些都要求用到volatile变量。不懂得volatile的内容将会带来灾难。 假设被面试者正确地回答了这是问题(嗯,怀疑是否会是这样),我将稍微深究一下,看一下这家伙是不是直正懂得volatile完

2011-01-17 19:47:00 577

转载 二、U-boot简介

<br />一、U-boot的起源U-Boot是Das U-Boot的简称,其含义是Universal Boot Loader,是遵循GPL条款的开放源码项目。一开始德国DENX软件工程中心的Wolfgang Denk基于8xxROM和FADSROM的源码创建了PPCBoot工程项目,此后不断添加处理器的支持。后来,Sysgo Gmbh把PPCBoot移植到ARM平台上,创建了ARMBoot工程项目。然后以PPCBoot工程和ARMBoot工程为基础,创建了U-Boot工程,2002年12月17日第一个

2011-01-12 18:50:00 952

转载 一、Boot Loader的概念和功能

<br />1、嵌入式Linux软件结构与分布<br />在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:<br />(1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。<br />而这个内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader。有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:USB、UART或以太网等等。而S3C24x0则很简单,只有Norboot和Nandboot。<br />(

2011-01-12 18:49:00 884

原创 堆栈的详解

<br />一、预备知识—程序的内存分配 <br />一个由c/C++编译的程序占用的内存分为以下几个部分 <br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 <br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 <br />3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变

2010-12-29 17:43:00 427

转载 u-boot命令介绍及烧写程序实例

<br /><br />bootdelay<br />定义执行自动启动的等候秒数<br />baudrate<br />定义串口控制台的波特率<br />netmask<br />定义以太网接口的掩码<br />ethaddr<br />定义以太网接口的MAC地址<br />bootfile<br />定义缺省的下载文件<br />bootargs<br />定义传递给Linux内核的命令行参数<br />bootcmd<br />定义自动启动时执行的几条命令<br />serverip<br />定义tf

2010-12-21 14:03:00 696

转载 pwm控制蜂鸣器实验(转)

<br /><br />实验名称: PWM 控制实验<br />实验目的: 熟悉ADS使用,熟悉pwm 的相关控制,实现按键改变蜂鸣器频率<br />实验原理:<br /> <br /><br /> <br /> <br /><br />GPB0可以设置成TOUT0,使用PWM的控制改变输出频率<br />实验步骤:<br />Main.c 代码如下:<br /> <br />#define GPBCON (*(volatile unsigned *)0x56000010)<br />#define GPB

2010-12-15 14:49:00 3909

原创 利用S3C2440中的Timer0的PWM输出驱动蜂鸣器

S3C2440中有5个16位定时器,timer0,timer1,timer2,timer3和timer4。其中,只有timer4是一个没有输出引脚的内部定时器。所以,只有定时器0,1,2,3有脉宽调制功能(PWM)。定时器0有一个用于大电流设备的死区生成器。(以下,以定时器0为例)S3C2440的PWM输出,主要是利用比较寄存器TCMPB0(0x51000010)。在定时器使能时,定时器计数缓存寄存器(TCNTBn)得到一个被装载到递减计数器中的初始值。定时器比较缓存寄存器(TCMPBn)有一个被装载比较器

2010-12-15 14:46:00 2050 1

原创 Qt事件和信号的区别

<br />问题:<br />    什么时候用事件,什么时候用信号呢?是不是不同的线程间用事件,信号不能用在线程间?<br />解答:<br />   仔细来看,事件与信号其实并无多大差别,从我们对其需求上来说,都只要能注册事件或信号响应函数,在事件或信号产生时能够被通知到即可。但有一项区别在于,事件处理函数的返回值是有意义的,我们要根据这个返回值来确定是否还要继续事件的处理,比如在QT中,事件处理函数如果返回true,则这个事件处理已完成,QApplication会接着处理下一个事件,而

2010-12-10 09:14:00 7404

转载 Qt信号和槽

<br />信号槽机制是Qt编程的基础。通过信号槽,能够使Qt各组件在不知道对方的情形下能够相互通讯。这就将类之间的关系做了最大程度的解耦。    槽函数和普通的C++成员函数没有很大的区别。它们也可以使virtual的;可以被重写;可以使public、protected或者private的;可以由其它的C++函数调用;参数可以是任何类型的。如果要说区别,那就是,槽函数可以和一个信号相连接,当这个信号发生时,它可以被自动调用。 connect()语句的原型类似于:connect(send

2010-12-10 09:13:00 829

原创 继承和派生

<br /><br />1. 继承和派生一般性概念 <br />在一个已经存在的类的基础上建立一个新的类,新类从已有的类那里获取某些已有的特征,这种现象称为类的继承。从另一个角度说,从已有的类产生一个新的类,称为类的派生.01class CBase02{03public:04       int m_iBase;05       int BaseFunc()06              {07                     return m_iBase;08       }09};10   11

2010-12-07 10:20:00 514

转载 网络socket编程指南

<br />刚才在chinaunix上看到一个叫流浪者的一篇文章写的很好,现在贴过来防止以后看的时候找不到<br />介绍<br />  Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措?等等… <br />    好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解 C 语言并想穿过网络编程的沼泽,那么你来对地方了。<br />--

2010-11-30 22:52:00 473

转载 嵌入式设计应具备的基本技能

嵌入式设计应具备的基本技能<br /><br />1、Linux 基础<br />安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解熟悉Linux服务能够独立安装Linux操作系统能够熟练使用Linux系统的基本命令认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践设置Linux环境变量定制Linux的服务 Shell 编程基础使用vi编辑文件使用Emacs编辑文件使用其他编辑器<br />2、Shell 编程基础<br />Shell简介认识后台

2010-11-29 15:37:00 637

原创 ubuntu忘记root密码或者root密码不能修改怎么办

<br />今天装了Ubuntu10.10,刚装完root是没有密码,可以通过如下方式设置密码:sudo passwd root .设置完密码之后会有一个问题,比如平时都是通过sudo操作,时间长了就会忘记root密码。Linux系统中,用户的密码文件是存放在/etc/shadow文件中的,每一个用户一行记录,密码经过了加密,但是用sudo还是可以对这个文本进行编辑的。这时提示输入密码是当前用户的密码,进去之后把当前用户的密码加密后的那串字符替换root的密码串,这时就可以用当前系统的密码登录r

2010-11-16 11:48:00 4215

原创 如何显示vim行号和自动缩进 设置ts=4

<br />root权限进入/etc/vim 路径下面打开vimrc 在后面加入<br />set nu       //显示行号<br />set autoindent   //自动缩进<br />set ts=4   //设置tab的值为四个空格

2010-11-16 11:44:00 1312

原创 opendir()和readdir()的具体用法

<br />#include <stdio.h><br />#include <stdlib.h><br />#include <sys/types.h><br />#include <dirent.h><br /><br />void do_dir (char dirname[])<br /><br />{<br />    DIR *dir_p;<br />    struct dirent *direntp;<br />    <br />    if

2010-11-11 17:11:00 4889

原创 ubuntu下安装pdf阅读器

<br />在ubuntu下打开windows系统下的pdf文件,无法正常显示,只有乱码。<br /><br />于是安装pdf阅读器,可直接在终端命令行输入如下命令: <br /><br />sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional<br /><br />这样就ok了

2010-11-09 14:20:00 944

原创 linux C/C++ 静态库、共享库

C语言库——静态库、共享库<br /><br />     我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函数,使用时直接调用就会很方便,还可以进行后期的功能升级。<br /><br />     例如我要在一段代码中多次交换两个变量的值,我可以在代码中多次写入<br /><br />i=x;<br />x=y;<br />

2010-11-08 13:56:00 3172

原创 ubuntu最常用和终端快捷键

<br /><br /> Bash Shell 快捷键<br />  l         CTRL k:删除从光标到行尾的部分<br />  l         CTRL u:删除从光标到行首的部分<br />  l         ALT d:删除从光标到当前单词结尾的部分<br />  l         CTRL w:删除从光标到当前单词开头的部分<br />  l         CTRL a:将光标移到行首<br />  l         CTRL e:将光标移到行尾<br />  l     

2010-11-05 12:39:00 548

原创 Ubuntu 10.04下修改分辨率

<br /><br />1.开启内核对framebuffer的支持<br />我发现有很多种framebuffer模式,不太明白它们之间有什么区别,不过我的机器在Ubuntu 10.04下,vesafb和nvidiafb都没搞好,能用,但是颜色分辨率低(可能是我用的方式不对),www.linuxidc.com最后还是看了别人帖子,改用uvesafb就OK了。<br /> <br />总之,做三个事情,一个是装uvesafb要用的东西,一个是开启内核对uvesafb的支持,还有要设置并更新grub2设置让内核

2010-11-04 20:30:00 1985

原创 网络程序员须知

<br /> <br />DHCP: Dynamic Host Control ProtocolIP:   Internet ProtocolDNS:  Domain Name ServiceLDAP: Lightweight Direct Access ProtocolNIS:  Network Information serviceNIS+: Network Information Service Plus

2010-11-04 16:42:00 507

转载 Linux下的管道编程技术-dup函数和dup2函数

<br /><br />dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的 原形如下:<br />#include <unistd.h>    <br /> int dup( int oldfd );    <br /> int dup2( int oldfd, int targetfd )  <br />    利用函数dup,我们可以复制一个描述符。传给该函数一个既有的描述符,它就会返回一个新的描述

2010-11-03 20:35:00 610

转载 linux下ioctl函数学习

一、 什么是ioctl。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,有或没有是和cmd的意义相关的。ioctl函数是文件结构中的一个属性分量,就是说如果你的驱动程序提供了对i

2010-11-03 20:29:00 16065 3

转载 linux下select系统调用

select系统调用是用来让我们的程序监视多个文件句柄(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。文件在句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是的,如man socket可以看到“On success, a file descrīptor for the new socket is returned.”而man 2 open可以看到“open() and creat

2010-11-03 20:27:00 1468

VB 数据库编程 详细介绍了VB连接数据库的方法等知识

VB连接SQL数据库方法 及其详细介绍 VB6.0数据库访问技术与例程解析

2009-05-20

空空如也

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

TA关注的人

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