自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux内核未定义符号

为了性能分析,参考x86的perf_event.c写了个例程,结果在加载时,提示:test: Unknown symbol register_die_notifiertest: Unknown symbol unregister_die_notifier但是查找了下符号表明明有这两个符号:[root@bogon boot]# grep "register_die_notifie

2013-12-29 12:18:07 1526

原创 Java: MD5工具

class MD5Util{ private static MessageDigest messagedigest = null; private static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','a', 'b', 'c', 'd', 'e', 'f' }; publ

2013-10-03 20:37:26 761

原创 用宏控制代码的一个注意事项

有时候会用宏对代码进行控制,基本方式如下:#ifdef XXXX#else#endif但有一点需要注意:#endif必须单独占一行,若是在其后面写代码,则后面的代码在预处理的时候也会被删掉。例如下面的一段代码,在#endif同行还有一个if语句#include int main(){ int a, b;#ifdef ABC

2012-09-01 11:31:30 1129

原创 一个简单的cmock例子

好久以前就想试用一下cmock,但一直没有做,汗。。。今天想起来,赶紧试一下。在官网上,下载安装包cmock_2_0_204.zip,方便的是,不需要编译和安装。不过cmock依赖于ruby,因此,得先安装一下ruby。注:这个安装包中也包含了一个单元测试工具unity,在解开后的子目录vendor/unity/下。例子概述:    4个文件:my_try.h、

2012-06-30 00:39:44 8335 2

原创 相同代码在GCC不同版本(3.4.4和4.5.3)的不同结果

代码        int n = 1;        printf("%d, %d, %d, %d\n", n, n++, n++, n); GCC 4.5.3(运行结果:3, 2, 1, 3)        movl    $1, -12(%ebp)            ==> -12(%ebp) = 1;        movl    -12(%ebp), %edx

2012-05-04 21:52:42 1041

转载 将linux配置为代理网关

#!/bin/shsysctl -p/sbin/modprobe ip_tables/sbin/modprobe ip_nat_ftpEXTIF=eth0ANY=0.0.0.0/0LAN=172.31.0.0/16/sbin/iptables -F INPUT/sbin/iptables -F OUTPUT/sbin/iptables -F FORW

2012-03-23 14:51:00 1287

转载 linux安装vmware

linux vmware-tool安装:1) 在vmware workstation菜单栏上的VM项,选择Install VMware Tool...2) 在Linux下执行mount -t iso9660 /dev/cdrom /mnt,则在/mnt/下能看到安装包3) 把安装包复制到一个临时目录,cp /mnt/vmware-linux-tool.tar.gz /tmp4) u

2012-03-23 14:43:58 902

原创 navigator.geolocation例子

function getPositionSuccess(position){ var lat = position.coords.latitude; var lng = position.coords.longitude; document.write("所在位置: 经度(" + lat + "),纬度(" + lng + ")"); if(typeof position.address

2012-03-09 22:20:55 7878 2

原创 Google Maps API例子

Google Mapsfunction getPositionSuccess(position){ var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); var myOptions = { zoom: 15, mapTypeId: google.maps.

2012-03-09 22:16:55 1562

原创 Navigator对象

Navigator对象包含有关浏览器的信息。虽然没有应用于Navigator对象的公开标准,不过,所有浏览器都支持该对象。     appCodeName                        与浏览器相关的内部代码名     appMinorVersion                     辅版本号     appName

2012-03-09 01:06:50 8229 1

转载 程序员新年要做的10个决定

源文链接:http://cnbeta.com/articles/169169.htm1、学习一种新语言、框架或方法Web开发唯一不变的就是变化。以node.js为例:两三年前它并不存在,只有很少的javascript代码运行于服务器之上。现在,你离不开它。每个web开发人员都希望留在自己的作品里。要做到这一点,我们必须不停学习最新的技术。如果你是一个后端开发,这可能

2012-03-08 17:04:07 769

原创 XP配置IPv6命令

1. 安装IPv6XP默认是不支持IPv6的,且只有XP sp1以上才可以安装。在命令行下,输入ipv6 install,即可完成IPv6安装。 2. 配置IP地址在命令行下,输入netsh,进到对应的配置模式,再输入interface ipv6,进到IPv6配置模式,用add address进行配置。netsh => interface ipv6 => add addre

2012-03-07 13:26:18 1632

原创 AV防病毒服务器搭建

支持的代理服务器:Squid(支持ICAP协议)Blue Coat SG ApplianceNetApp/Blue Coat NetCacheCisco ACNS Content Engine 软件要求:Perl 5.0以上版本 安装方法:建立一个kaspersky目录,把安装程序和授权许可文件复制到kaspersky目录中。rpm -i

2012-03-04 12:55:18 4307

原创 混乱代码大赛

国际C语言混乱代码大赛(IOCCC, The International Obfuscated C Code Contest)目的是写出最有创意的最让人难以理解的C语言代码。下面是其中一届的获奖代码,写得真是波浪叠起呀。#include #include #include #define PI 314#define Z if#define P a->b#define

2012-03-04 09:09:33 2566

原创 GCC选项_-Wl,-soname

-Wl选项告诉编译器将后面的参数传递给链接器。-soname则指定了动态库的soname(简单共享名,Short for shared object name)soname的关键功能是它提供了兼容性的标准:当要升级系统中的一个库时,并且新库的soname和老库的soname一样,用旧库链接生成的程序使用新库依然能正常运行。这个特性使得在Linux下,升级使得共享库的程序和定位错

2012-02-14 21:44:14 23986 1

原创 C语言_大小端与union

大端(big_endian):字数据的高字节存储在低地址中,而字数据的低字节存储在高地址中。小端(little_endian):字数据的高字节存存储在高地址中,而字数据的低字节存储在低字节中。而对union型成员的存取都是相对于该联合体基地址的偏移量为0处开始,也就是联合体的访问不论对哪个变量的存取都是从union的首地址位置开始的。利用这个特性,我们可以判断当前系统是大端还是

2012-02-13 12:47:02 1566

原创 C语言_空结构体的大小

定义一个空的结构体,那么,这个结构体占多大空间呢?在C中,空结构的大小为0。在C++中,空结构的大小则为1。#include struct A{}aa;int main(int argc, char *argv[]){ printf("%d\n", sizeof(struct A)); printf("%d\n", sizeof

2012-02-13 12:24:03 5712 3

原创 字符串查找之KMP

根据定义next[0]=-1,假设next[j]=k, 即P[0...k-1]==P[j-k,j-1]   1)若P[j]==P[k],则next[j+1]=k+1;   2)若P[j]!=P[k],则k=next[k]。#include #include #include void get_next(char *pat, int next[]){

2011-12-30 14:44:03 711

原创 switch

根据网上博文(见参考),亲自确认了一下GCC对switch的优化,这里留个笔记。1. 概述GCC会根据switch具体列举值的情况进行一些优化:* 当枚举的值较多且比较连续时,使用跳转表,O(1)。* 当枚举的值跨度很大时,不使用跳转表,但是,会针对枚举值进行二分跳转,O(lgn)。2. 使用跳转表的情况int switch_test(int x){

2011-11-15 10:49:11 1014

转载 QT_win7下编译的程序在xp中运行中文乱码问题

在win7下编译了一个可执行程序,放到xp下执行,即使所有的中文已都用tr()包含起来,但中文仍为乱码。在网上简单搜索了一下,看到类似的文章(http://www.xpsp3.com/jiaocheng/506.html),很好地解决所碰到的问题。原来我的代码:int main(int argc, char *argv[]){ QApplication app(a

2011-11-13 11:25:49 4626 1

原创 SDL - Simple DirectMedia Layer

SDL(Simple DirectMedia Layer)是一个开源的跨平台多媒体库,用于直接控制底层的多媒体硬件,包括音频、键盘、鼠标、操纵杆、3D硬件(通过OpenGL)以及2D视频framebuffer。它被MPEG视频播放软件、模拟器以及很多流行游戏所使用。SDL支持

2011-09-21 23:38:01 2219

原创 wxWidgets_xpm文件

XPM(X Pixmap)是X Windows系统使用的一种图片文件格式。最初由位于法国Sophia Antipolis的Bull研究中心的Daniel Dardailler和Colas Nahaboo发明,后来Arnaud Le Hors对其进行了改进。XPM主要用于创建图

2011-09-21 23:06:24 4378

原创 const用法

很久没用const了,有点忘了。。。const是左结合类型修饰符,它与左边的类型一起修饰右边的内容,比如int const *b,则int const限制右边的*b,但不限制b。因此,对b重新赋值不会有错误,但对*b进行重新赋值就不行(编译的时候)。下面是一个简单的例子,基本包含了const的基本情况:#include int main(int argc, char *

2011-09-18 10:49:45 767

转载 Linux平台代码覆盖率测试工具GCOV相关文件分析

原文地址:http://blog.csdn.net/livelylittlefish/article/details/6321909Content1. 使用 od 命令 dump 文件内容2. 文件内容解析(1) file magic(

2011-09-11 08:19:37 1168

转载 Linux平台代码覆盖率测试工具GCOV的前端工具LCOV简介

原文地址:http://blog.csdn.net/livelylittlefish/article/details/6321887Content1. Lcov是什么?2. 如何在Linux平台安装Lcov?3. 如何使用Lcov?

2011-09-11 08:17:34 1218

转载 Linux平台代码覆盖率测试工具GCOV简介

原文地址:http://blog.csdn.net/livelylittlefish/article/details/6321861Content 1. gcov是什么?2. gcov能做什么?3. 如何使用gcov?3

2011-09-11 08:15:18 709

原创 命令行程序的通配符入参

今天突然想到一个问题:当命令行程序的入参为一个通配符(比如./a.out *)时,会是什么样的情况? 程序得到的入参是通配符*吗?源码:#include int main(int argc, char *argv[]){ int i; pr

2011-07-19 10:08:44 1275

原创 代码统计工具cloc

cloc是一个基于perl的、十分好用的代码统计工具(http://cloc.sourceforge.net/),它所支持的语言还算十分丰富。不过,还是有很多用的较少的语言是不支持的。项目中的一些功能模块用到re2c来实现字符匹配,因此,会有一些.re文件,而这些文件cloc是不

2011-07-17 20:21:32 19595

原创 Qt_程序启动画面

程序启动画面一般用于显示软件信息(名称、作者、版权等)以及减少程序加载过程中的枯燥感。在Qt中,可以通过QSplashScreen类来为应用程序添加一个启动画面,它会在应用程序的主窗口出现前显示一个图片,并且可以在图片上显示想要输出的信息。 下面是一个简单的例子:#include #include #include #include int main(int arg

2011-06-26 20:47:00 6593 4

转载 写一个Qt资源文件(qrc)

 原文地址:http://my.chinaunix.net/space.php?uid=25601623&do=blog&id=335144 一个.qrc 文件的例子:            images/copy.png        images/cut.png        images/new.png        images/open.png

2011-06-26 20:27:00 8111

原创 Filezilla IPv6

<br />Filezilla客户端支持FTP IPv6,在写地址时,需要用方括号把地址括起来,如[2001:1::2]。<br />Filezilla服务器目前还不支持FTP IPv6。

2011-05-25 09:20:00 4905

原创 排序之冒泡排序(Bubble Sort)

<br />1. 基本思想<br />* 递归比较相邻的两个数,若前面的数比后面的数大,则进行交换。这样,最大的数就被交换到了最后。<br />* 重复执行上面的过程,直到没有需要交换(用一个flag记录)为止。<br /> <br />2. 简单实现<br />void bubble_sort(int array[], int len){ int i, j, temp, flag; for(i = 0; i < len-1; i++){ flag = 0; for(j =

2011-05-16 13:40:00 868

原创 isblank编译警告

最近对以前写的代码进行消除编译警告,但是有一个isblank的警告一直无法消去。例子源码如下:#include #include int main(){ char a = 'a'; printf("%d/n", isblank(a)); printf("%d/n", isalpha(a)); return 0;} 编译的结果: bash-2.05b# gcc -Wall test.c test.c: In function `main': t

2011-05-14 08:49:00 1812

原创 函数调用的开销

函数调用的开销

2011-04-17 07:24:00 7900

<Unix编程艺术>

Unix编程艺术,学习编程的好书。很值得大家读一下

2008-09-13

linux设备驱动程序(第三版中文版)

linux设备驱动程序,一本学习驱动程序的好书,很值得看看。呵呵!

2008-09-13

空空如也

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

TA关注的人

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