自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 各种RAID的iozone测试结果

1 测试环境和方法测试服务器为"Dell R720xd",内存32GB,配12块型号为"ST4000NM0023"的4TB硬盘。测试工具为iozone,分别针对各种RAID进行顺序读写和随机读写,所有RAID都使用默认参数创建,测试时禁用Cache和Buffer IO,输出的测试结果以KBps为单位。2 512KB大数据块测试单线程测试iozone -p -I -r 5

2017-02-27 14:23:35 3289

原创 通过设备名查询硬盘的Host Channel Id Lun

linux的块设备映射都保存在/sys/block下,这个目录下的每个符号链接都以和一个设备同命,并链接到真实的设备路径上。lrwxrwxrwx. 1 root root 0 Mar 27 14:34 sda -> ../devices/pci0000:00/0000:00:03.0/0000:01:00.0/host0/port-0:0/end_device-0:0/target0:0:0/

2015-04-02 11:17:40 3006

原创 网卡设置导致VMWare虚拟机网络读取速度缓慢

在2.6.24内核开始加入了支持TCP协议的通用Large Receive Offload功能,它通过将多个TCP数据整合在一个skb结构中,并在稍后的某个时刻作为一个大的数据包交付给上层的网络协议栈,以减少上层协议栈处理skb的开销,提高Linux系统接收TCP数据包的能力。

2014-11-25 15:16:21 17271

原创 Android 4.0 加密后禁用锁屏的方法

Android 4.0的设备加密功能十分有用,可以保证别人无法开机也无法查看手机数据。但是设备加密后,系统会强制把锁屏设置为“输入密码”方式,这样每次解锁都很麻烦。而目前大多数禁用锁屏的软件都是使用KeyguardLock类的disableKeyguard函数,调用这个函数后可以确保在屏幕打开时不用解锁,但是点击通知栏图标时却会弹出解锁屏幕,还是有些不便。其实要禁用解锁只须要把锁屏类型

2013-07-28 10:54:24 1396

原创 在Windows下统计进程的CPU使用率

在网上查了一下,基本上都使用GetSystemTimes函数来取得当前CPU时间的,但是这个函数要到Windows XP SP1才有,在之前版本的Windows下无法使用。上网搜了一下老外的文章,发现内部函数NtQuerySystemInformation可以取得当前CPU时间,而且各NT版本通用。以下是我写的一个显示CPU使用率的代码:#include #include

2012-12-14 18:33:29 4455 1

转载 解决win7和2008连接windows 2003远程桌面很卡的问题

原因在于从vista开始,微软在TCP/IP协议栈里新加了一个叫做“Window Auto-Tuning”的功能。这个功能本身的目的是为了让操作系统根据网络的实时性能(比如响应时间)来动态调整网络上传输的数据窗口的大小,从而达到实时优化网络性能的目的。但是,在某种情况下(具体是怎样的一个环境,目前我也不清楚),这个功能反而会使远程桌面的响应变的非常的慢。 通过把autotuningleve

2012-11-30 10:00:31 3994 1

转载 让VC调试器正确显示UTF-8字符串

默认的, VC调试器只能正常显示ANSI字符串及UNICODE字符串, 而UTF-8字符串及其他格式则无法显示这里无需编写插件及修改配置文件,只需要将要显示的字符串拉到Watch中,并在变量后面添加,s8即可显示 --> 同样类型的功能也应该很熟悉,数字  将变量拆分为数组显示, 数字是要显示多少位, 此法对const char*这类原始字符串非常有用,x

2012-10-17 15:38:53 890

原创 让用MinGW编译的程序使用Unicode命令行参数

让用MinGW编译的程序使用Unicode命令行参数

2011-06-01 11:23:00 2085

转载 Linux System Programming:Memory Management

Linux System Programming:Memory Management

2011-03-15 10:49:00 1850

转载 小心pthread_cond_signal和SetEvent之间的差异

pthread_cond_signal有陷阱。

2010-09-21 14:03:00 654

转载 关于iconv容易忽略的参数IGNORE

解决iconv因为无法处理某个字符而导致转换中断的问题。

2010-07-27 15:20:00 3773 1

原创 CIFS服务端开发笔记

自己开发CIFS服务程序的一些心得。

2010-06-28 20:51:00 1240 1

原创 解决php不能编译bcmath的问题

在编译php的bcmath模块时,会出现类似下面的错误: error: _zero_ undeclared (first use in this function) 这是因为bcmath的代码bug引起的,编辑bcmath的“libbcmath/src/bcmath.h”文件,在“#include "bcmath.h”之前插入以下内容:#include "../../confi

2010-04-06 16:35:00 1769

转载 MySQL 一次执行多条语句的实现及常见问题

代码如下://链接时设定 mysql_real_connect( ..., CLIENT_MULTI_STATEMENTS ); //或者 //中途指定 mysql_set_server_option( mysql, MYSQL_OPTION_MULTI_STATEMENTS_ON ); //mysql是连接的名称  当使用执行多语句功能后,一定要读完整个resault集,否则会出现错

2010-01-04 15:08:00 1398

转载 vmnetcfg.exe missing in vmware player 3

 The vmnetcfg.exe is included in the installer, but wont be installed.1. Run the installer with /e option. For example:VMware-player-3.0.0-197124.exe /e ./extractAll contents will be extracted to "

2009-12-25 19:48:00 1146

转载 Linux 2.6版内核中通过模块获取sys_call_table地址的方法

本文主要介绍在Linux 2.6版的内核中实现基地址修改的方法。所有代码我都在基于2.6.19版内核的Fedora Core 6上进行了测试。Linux 2.6版的内核出于安全的考虑没有将系统调用列表基地址的符号sys_call_table导出,但要对系统调用进行替换,却必须要获取该地址,于是就有了这篇文章。我在这里采用的基本思路是这样的,因为系统调用都是通过0x80中断来进行的,故可以通

2009-04-20 15:46:00 832

转载 用kprobes实现内核反射机制

 用kprobes实现内核反射机制 时间:2007-08-22 11:24:17 来源:CUBLOG 作者:李先静 前几天在设计事件管理器时,我就在考虑磁盘满的问题,磁盘满是一个典型的系统事件,没有什么好说的,问题是应该何时何地触发它呢?如果由应用程序在操作文件时触发,那将有很多地方需要修改,这不是我们期望的。如果能在一个地方统一处理,那就省事多了,说到统一处理,我们自然会想到修改glibc或者内

2009-04-20 15:36:00 721

转载 调整Linux命令行下的屏幕分辨率

在grub.conf文件的kernel /vmlinuz-2.6.11-EL ro root=LABEL=/ 行后面添加vga=791,可以改变命令行下的屏幕分辨率。vga后面的数字并不是随意的,其与屏幕分辨率及色深的对应关系如下:分辨率4 bits8 bits16 bits24 bits32 bits640x400?0x300(768)

2009-04-08 09:41:00 1394

转载 CRC32碰撞的实现

标 题: CRC32碰撞的实现作 者: DonQuixote时 间: 2004-12-20,19:31链 接: http://bbs.pediy.com/showthread.php?t=8699昨天晚上开始学习CRC32,发现这个HASH实际上应该很容易得出碰撞,下面给出一种生成碰撞的算法用CRC32对长度为N的数据效验,初始效验值为0xFFFFFFFF,经过N轮以后得到的值

2009-04-08 09:40:00 2129

转载 使用Windows批处理文件

使用批处理文件使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,Cmd.exe 就会按照该文件中各个命令出现的顺序来逐个运行它们。可以在批处理文件中包含任何命令。某些命令,比如 for、goto 和 if 命令等,它们允许您对批处理文件中的命令

2009-04-08 09:38:00 3618

转载 Windows NT 驱动程序开发人员提示 -- 应注意避免的事项

作者:codewarrior(会思考的草) 1. 一定不要在没有标注 I/O 请求数据包 (IRP) 挂起 (IoMarkIrpPending) 的情况下通过调度例程返回 STATUS_PENDING。   2. 一定不要通过中断服务例程 (ISR) 调用 KeSynchronizeExecution。 它会使系统死锁。   3. 一定不要将 DeviceObject->Flags 设置为

2009-04-08 09:32:00 506

原创 在Visual C++中集成DDK/WDK

要在Windows下开发驱动程序,最直接的方法就是用免费的WDK(Windows Driver Kit)。但是WDK只提供了命令行下运行的编译和链接工具,并没有IDE,这样对于那些用贯了Visual C++的开发者会来说有些不方便。要把WDK集成到Visual C++里,要对项目进行如下设置:1 - 新建一个DLL项目,把驱动程序的源代码都添加到项目中,打开项目的属性页对话框。2 - 展开“C/C

2009-04-07 15:03:00 2695 3

原创 文件系统驱动开发心得

 * 打开文件系统对象的特殊方式    文件系统驱动接收到IRP请求IRP_MJ_CREATE时,如果IrpSp->Flags指定了SL_OPEN_TARGET_DIRECTORY,则表示并不是真的要打开指定的文件系统对象,而是要检查对象是否可以删除已经它所在的目录是否可以进行创建操作。 通常这样的请求会发生在重命名文件系统对象之前。 * 文件系统驱动处理相对路径    处理IRP_M

2009-03-05 13:47:00 2840

原创 Windows内核模式开发笔记

* 通过 NTSTATUS 获得相应的字符串    使用函数RtlNtStatusToDosError可以获得与NTSTATUS相对应的Windows错误码。    微软网站上说用API函数 FormatMessage 可获得相应的字符串,但是在调用前必须先用 LoadLibrary 载入 "NTDLL.DLL"。    文章链接 - http://support.microsoft.

2009-02-02 16:44:00 2415

原创 WDK/DDK中去掉 error C2220: warning treated as error - no ‘object’ file generated

    出现这个提示是因为默认情况下WDK编译代码时把所有警告都当成了错误,只须要在项目的makefile文件最后一行加入MSC_WARNING_LEVEL=/W3即可忽略这些警告信息。

2009-01-19 17:50:00 3638 1

原创 控制台下设置本地化输出

ANSI C标准函数可以用来设置当前本地化信息,在Windows系统下,控制台程序并没有默认的本地化信息,所以需要调用setlocale函数来设置。如果执行 setlocale(LC_ALL,"") 则设置为系统默认的本地化信息,注意第二个参数为空字符串而不是NULL。

2009-01-14 12:59:00 432

原创 用Lighttpd加脚本实现服务器端可进行身份验证的HTTP断点续传下载

 在客户端提交的请求中如果有头部字段“Range”,就表明客户端只须要接收目标文件的部分内容。这时需要接受请求的脚本程序判断Range头的内容,然后给lighty的content属性制定如下格式的值:{{filename = 文件路径,offset=文件内容的起始位置,length=要获得的文件内容大小}}以下为LUA代码例子:range_str = lighty.request["R

2009-01-14 12:57:00 1049

原创 Delphi和C的枚举兼容问题

    前几天用C做了个函数库给程序部,程序部那边把库里的所有声明原封不动转为Delphi的语法以便在Delphi中调用,结果老是莫名其妙出问题,后来把他们的程序拿过来调试,才发现是枚举惹的祸···    原来在Delphi中枚举类型的大小为一个字节,而32位系统下C中的枚举类型通常为4四个字节。当Delphi调用C的函数时,那些枚举类型的参数只有一个字节是正确的值,其它三个字节为错误数据,这样将

2009-01-14 12:56:00 790

原创 控制台下特殊控制符的ASCII码

在控制台程序里如果用户按下Ctrl+就算是特殊控制符,这些字符同样可以被getch函数捕获,它们的ASCII码是0-25之间的数字,从A开始。

2009-01-14 12:55:00 1242 1

原创 注意CreateThread引起的内存泄漏

    在Windows下用Visual C++编写应用程序不少人会直接使用API函数CreateThread来创建线程,如果在这样的线程中调用了Microsoft C运行时库的函数库或变量时(例如:sprintf;errno),可能会导致内存泄漏。因为Microsoft C运行时库须要给每个线程分配一些资源,但是CreateThread创建线程时Microsoft C运行时库并不知道,那些资源也

2009-01-13 10:58:00 1892

原创 在Linux不要使用 gethostbyname

    在Linux下编写基于Socket的客户端程序时,很多人会调用gethostbyname函数来解析一个主机名以获得要连接的主机信息。这样在单线程时没有问题,如果是多个线程同时调用gethostbyname时,由于它的返回值始终是指向一个预先分配的内存地址,所以会出现不可预料的结果。    在Windows下,Winsock使用TLS(线程本地存储)来分配该函数的返回值,这样保证了不同的线程

2009-01-07 20:35:00 3064

原创 使用wxWidgets开发的一点心得

使用wxWidgets开发的一点心得 1 在动态链接库中使用wxWidgets    从wxWidgets的官方网站了解到,要在动态链接库里使用wxWidgets不能简单地用wxApp替换DllMain,而是要在DllMain中创建一个线程,有这个线程来进行wxWidgets的初始化。例子:/** * wxWidgets线程入口函数。 */DWORD WIN

2008-12-24 12:03:00 3271

原创 安装VC6要更新Java虚拟机?

今天因为需要在Windows 2000下想安装VC6,结果启动安装程序后竟然提示"update microsoft virtual machine for java"?!得,那就更新吧。点了下一步按钮提示要重新启动计算机,重新启动后又提示要更新Java虚拟机,如此反复了几次,不知何故?上Google查了一下,发现在“CCF精品技术论坛”里有个叫“asap”的大虾给出了如下办法:1. 在%syste

2008-06-13 23:58:00 3955

原创 Windows使用笔记

用"set /p"命令可以在命令行下输入文本。 用"chcp"命令可以改变当前环境的代码页。强大的文件系统工具 fsutil 可以对分区和文件进行很多有用操作。cipher可以用于NTFS加密。cacls用于管理文件的安全信息。> {target} 2>&1 可以把stdout和stderr重定向到同一目标。

2008-03-31 09:41:00 458

原创 Linux命令行使用笔记

sed 用来替换文本。 awk 用来查找文本里的字符。微软已经用cifs协议取代smb协议作为新的文件共享协议,因此新的Linux内核挂载Window共享文件夹必须把文件系统指定为cifs而不是smbfs。read 可以接受标准输入或读取文件。 环境变量IFS为字符串分隔符,一些程序根据它的值来分割字符串。主要给complete和read命令使用,默认值为空格。 where

2008-02-29 10:34:00 457

转载 判定一个点在平面几何体内部的方法

 判定一个点在平面几何体内部的方法作者:learun 本文给出了判断一个点在椭圆、多边形(可以是凹边形)、矩形内部的解析方法所有断定方法为: BOOL Contains(int x, int y), 代码为C++一、椭园(也适用于园)P1(x1, y1), P2(x2, y2) 定义椭园外接矩形(左上点与右下点)CEllipse::CEllipse(int x1, int y1

2007-08-22 17:29:00 2292

原创 用批处理文件删除n天前的文件

公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服务器去手工删除那些老的文件,有时忘记了就会导致硬盘空间不足而无法备份。因为只要保留最近几天的备份,如果可以做一个批处理让系统自动删除老备份文件就好了,但是Windows的命令行和Linux的Shell比起来功能差了很多,到底行不行我自己也不清楚。于是上网查了一下各位大虾发的帖子,再经过自己的摸索和尝试,发现只要花点功夫还是

2007-08-03 07:47:00 6624 1

原创 基于命令行程序如何判断自己被终止

基于命令行的程序在当今各个操作系统上都应用得非常广泛,但是这些程序没有GUI,所以用户要终止它们时通常都是按"Ctrl+C"或用系统命令直接结束进程,这样可能会造成数据丢失或者一些特殊资源没有释放,因此须要编写一段代码在程序被终止前作一些自己的结束工作。ANSI C已经提供了一个标准函数signal来捕获命令行的中断信号。这是该函数在Linux下GCC中的原形:typedef void (

2007-04-27 18:32:00 2005

转载 密码学里的随机数发生器

密码学里的随机数发生器创建时间:2002-09-23文章属性:翻译文章来源:Phrack 59  0x0f文章提交:backup (g0200685_at_nus.edu.sg)==Phrack Inc.==           Volume 0x0b, Issue 0x3b, Phile #0x0f of 0x12|=--------=[ CRYPTOGRAPHIC RANDOM NUMBE

2007-04-06 12:02:00 2378

原创 让SVN能正确显示中文信息

我的svn在windows的命令行下输入命令svn help,就会出现类似下面的字符?/226?/128?/157?/228?/187?/165?/229?/190?/151?/229?/136?/176?/231?/148?/168?/230?/179?/149?/229?/146?/140?/229?/184?/174?/229?/138?/169?/227?/128?/130svn要

2007-02-09 10:12:00 5907

set_vc2008express_64bit

一个批处理文件,通过设置可以让Visual C++ 2008 Express支持64位编程。 在XCPP大虾的解决方案基础上改进,简化了文件的数量。

2009-06-16

空空如也

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

TA关注的人

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