- 博客(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
1656
原创 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
804
原创 用宏控制代码的一个注意事项
有时候会用宏对代码进行控制,基本方式如下:#ifdef XXXX#else#endif但有一点需要注意:#endif必须单独占一行,若是在其后面写代码,则后面的代码在预处理的时候也会被删掉。例如下面的一段代码,在#endif同行还有一个if语句#include int main(){ int a, b;#ifdef ABC
2012-09-01 11:31:30
1191
原创 一个简单的cmock例子
好久以前就想试用一下cmock,但一直没有做,汗。。。今天想起来,赶紧试一下。在官网上,下载安装包cmock_2_0_204.zip,方便的是,不需要编译和安装。不过cmock依赖于ruby,因此,得先安装一下ruby。注:这个安装包中也包含了一个单元测试工具unity,在解开后的子目录vendor/unity/下。例子概述: 4个文件:my_try.h、
2012-06-30 00:39:44
8635
原创 相同代码在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
1126
转载 将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
1363
转载 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
930
原创 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
7961
原创 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
1600
原创 Navigator对象
Navigator对象包含有关浏览器的信息。虽然没有应用于Navigator对象的公开标准,不过,所有浏览器都支持该对象。 appCodeName 与浏览器相关的内部代码名 appMinorVersion 辅版本号 appName
2012-03-09 01:06:50
8317
转载 程序员新年要做的10个决定
源文链接:http://cnbeta.com/articles/169169.htm1、学习一种新语言、框架或方法Web开发唯一不变的就是变化。以node.js为例:两三年前它并不存在,只有很少的javascript代码运行于服务器之上。现在,你离不开它。每个web开发人员都希望留在自己的作品里。要做到这一点,我们必须不停学习最新的技术。如果你是一个后端开发,这可能
2012-03-08 17:04:07
791
原创 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
1718
原创 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
5057
原创 混乱代码大赛
国际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
2669
原创 GCC选项_-Wl,-soname
-Wl选项告诉编译器将后面的参数传递给链接器。-soname则指定了动态库的soname(简单共享名,Short for shared object name)soname的关键功能是它提供了兼容性的标准:当要升级系统中的一个库时,并且新库的soname和老库的soname一样,用旧库链接生成的程序使用新库依然能正常运行。这个特性使得在Linux下,升级使得共享库的程序和定位错
2012-02-14 21:44:14
24163
1
原创 C语言_大小端与union
大端(big_endian):字数据的高字节存储在低地址中,而字数据的低字节存储在高地址中。小端(little_endian):字数据的高字节存存储在高地址中,而字数据的低字节存储在低字节中。而对union型成员的存取都是相对于该联合体基地址的偏移量为0处开始,也就是联合体的访问不论对哪个变量的存取都是从union的首地址位置开始的。利用这个特性,我们可以判断当前系统是大端还是
2012-02-13 12:47:02
1600
原创 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
5802
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
746
原创 switch
根据网上博文(见参考),亲自确认了一下GCC对switch的优化,这里留个笔记。1. 概述GCC会根据switch具体列举值的情况进行一些优化:* 当枚举的值较多且比较连续时,使用跳转表,O(1)。* 当枚举的值跨度很大时,不使用跳转表,但是,会针对枚举值进行二分跳转,O(lgn)。2. 使用跳转表的情况int switch_test(int x){
2011-11-15 10:49:11
1064
转载 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
4663
原创 SDL - Simple DirectMedia Layer
SDL(Simple DirectMedia Layer)是一个开源的跨平台多媒体库,用于直接控制底层的多媒体硬件,包括音频、键盘、鼠标、操纵杆、3D硬件(通过OpenGL)以及2D视频framebuffer。它被MPEG视频播放软件、模拟器以及很多流行游戏所使用。SDL支持
2011-09-21 23:38:01
2265
原创 wxWidgets_xpm文件
XPM(X Pixmap)是X Windows系统使用的一种图片文件格式。最初由位于法国Sophia Antipolis的Bull研究中心的Daniel Dardailler和Colas Nahaboo发明,后来Arnaud Le Hors对其进行了改进。XPM主要用于创建图
2011-09-21 23:06:24
4555
原创 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
807
转载 Linux平台代码覆盖率测试工具GCOV相关文件分析
原文地址:http://blog.youkuaiyun.com/livelylittlefish/article/details/6321909Content1. 使用 od 命令 dump 文件内容2. 文件内容解析(1) file magic(
2011-09-11 08:19:37
1279
转载 Linux平台代码覆盖率测试工具GCOV的前端工具LCOV简介
原文地址:http://blog.youkuaiyun.com/livelylittlefish/article/details/6321887Content1. Lcov是什么?2. 如何在Linux平台安装Lcov?3. 如何使用Lcov?
2011-09-11 08:17:34
1271
转载 Linux平台代码覆盖率测试工具GCOV简介
原文地址:http://blog.youkuaiyun.com/livelylittlefish/article/details/6321861Content 1. gcov是什么?2. gcov能做什么?3. 如何使用gcov?3
2011-09-11 08:15:18
743
原创 命令行程序的通配符入参
今天突然想到一个问题:当命令行程序的入参为一个通配符(比如./a.out *)时,会是什么样的情况? 程序得到的入参是通配符*吗?源码:#include int main(int argc, char *argv[]){ int i; pr
2011-07-19 10:08:44
1304
原创 代码统计工具cloc
cloc是一个基于perl的、十分好用的代码统计工具(http://cloc.sourceforge.net/),它所支持的语言还算十分丰富。不过,还是有很多用的较少的语言是不支持的。项目中的一些功能模块用到re2c来实现字符匹配,因此,会有一些.re文件,而这些文件cloc是不
2011-07-17 20:21:32
19728
原创 Qt_程序启动画面
程序启动画面一般用于显示软件信息(名称、作者、版权等)以及减少程序加载过程中的枯燥感。在Qt中,可以通过QSplashScreen类来为应用程序添加一个启动画面,它会在应用程序的主窗口出现前显示一个图片,并且可以在图片上显示想要输出的信息。 下面是一个简单的例子:#include #include #include #include int main(int arg
2011-06-26 20:47:00
6688
2
转载 写一个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
8225
原创 Filezilla IPv6
<br />Filezilla客户端支持FTP IPv6,在写地址时,需要用方括号把地址括起来,如[2001:1::2]。<br />Filezilla服务器目前还不支持FTP IPv6。
2011-05-25 09:20:00
5106
原创 排序之冒泡排序(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
903
原创 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
1858
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人