- 博客(23)
- 资源 (7)
- 收藏
- 关注
原创 删除字符串中间的空格
#include void rmblank(char* str){ if(!str) return ; char* f=str; char* r=str; while((*f=*r++,(*f)==' '?*f:*f++)!='\0');}int main(){ char str[]="askj ask jjj bbb n "; rmblank(str); p
2014-09-17 10:36:11 758
原创 python实现二叉树
最近对python比较感兴趣,基本看完了网上流传甚广的 简明python教程,自己也试着玩了玩,感觉python确实是一门优雅的语言。 前几天在网上看到一个python的二叉树代码,也学着写了写,增加了对二叉树的遍历方法。 代码如下: 不知道格式有没有乱#!/usr/bin/python#*_*coding:utf-8*_*
2012-11-29 21:45:02 3388 5
转载 C++带有虚函数的单继承类的构造过程探索,msvc和gcc编译器
http://saturnman.blog.163.com/blog/static/557611201081421344244/对于C++带于虚函数的单继承类的构造过程我原来写过一篇日志,感觉还有一些不够明确,这里通过调式器再看一下到底构造过程中发生了什么。本文是通过对msvc和gcc这两大主流编译器的编译结果调式来探所在带于虚函数的单继承类的构造过程中发生的事情,对于其它编译
2012-09-04 16:02:42 1023
转载 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
http://www.awflasher.com/blog/archives/939当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!最初来自:sinoprise.com/read.php?tid-662-page-e-fpage-1.html(遗憾的是这个链接已经打不开了),我基本未改动,只是进行了一些排版和整理。参
2012-08-17 13:10:00 511
转载 菜鸟浅谈Linux内核编译过程...
http://bbs.chinaunix.net/thread-2264758-1-1.html菜鸟编译Linux内核 双眼皮的猪 菜鸟俺,最近研究了一下Linux内核的编译,有些许心得,望同大家分享一下,故有此文…我们这里要谈的不涉及到源码,只是一些内核编译的步骤及相关知识…因为本人是菜鸟。所以,也就希望和菜鸟们分享一下…
2012-08-15 14:34:27 580
转载 关于const重载
对于基本数据类型,函数的参数前面加不加const都是一样的,但对于指针和引用,参数前面加const与不加const是不同类型的参数,因此是重载函数。 int comp(int a){ return a;}int comp(const int a){ return a;}
2012-08-15 10:33:14 565
转载 write的奥秘
作者:coly(李勇)来源:http://www.linuxforum.net/doc/write-coly.html摘要:介绍了一个简单的字符设备驱动程序,深入剖析了write函数的工作原理 在Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使 用文件那样向设备传送数据。可是为什么用户使用write函数就可以
2012-08-13 16:27:21 655
转载 linux系统时间和硬件时钟问题(date和hwclock)
http://www.sealinger.com/archives/221/?replyTo=2731、总结一下hwclock,这个容易晕: 1)/etc/sysconfig/clock 文件,只对 hwclock 命令有效,且只在系统启动和关闭的时候才有用(修改了其中的 UTC=true 到 UTC=false 的前后,执行 hwclock (--utc, 或 --l
2012-08-07 17:35:45 3511
转载 GMT、UTC、PDT 时间是什么?Linux下如何调整时区
GMTGMT 是 Greenwich Mean Time 的缩写,译为中文为“格林威治标准时间”或“格林尼治标准时间”,直译的话,可译为“格林威治平时”或“格林尼治平时”。这里的格林威治位于英国伦敦东南方向的泰晤士河畔,美国也有个格林威治镇,不过与时间没关系。UTCUTC 是 Coordinated Universal Time 的缩写,译为中文为“世界标准时间
2012-08-07 15:36:38 3132
转载 C++ 中的空类,默认产生哪些类成员函数?
class Empty{public:Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=( const Empty& ); // 赋值运算符 Empty* operator&(); // 取址运算符 const Empty* operator&(
2012-08-07 09:30:21 1645
转载 内存对齐的初步讲解
一.内存对齐的初步讲解内存对齐可以用一句话来概括:“数据项只能存储在地址是数据项大小的整数倍的内存位置上”例如int类型占用4个字节,地址只能在0,4,8等位置上。例1:#include struct xx{ char b; int a; int c; char d;};int main()
2012-08-06 14:04:22 1154
转载 深入C++拷贝构造函数
先从我最近遇到的一个诡异的现象说起,来看一段代码:#include using namespace std;class test{public: test(){} test(test &t) { data = t.data; } test func(test t)
2012-06-11 14:53:20 768
转载 免费SVN、Git项目托管主机及网站介绍
Unfuddle没有聪明的思维,就象没有腊烛的灯笼。200MB的免费空间,界面友爱,特点雄厚,支撑Git,但只能一个账户一个用户并且只容许一个项目,付费办事相对来说价格偏高CodeSpaces内容充分的生命就是长久的生命,我们要以此为而不是以时候来衡量生命。500MB,一个账户两个免费用户,付费办事价格公道吧,貌似如今免费的就45天Assembla200MB,很有特点,项目有维
2012-05-22 21:19:56 2772 2
原创 关于LD_DEBUG
LD_DEBUG 是 glibc 中的 loader 为了方便自身调试而设置的一个环境变量。通过设置这个环境变量,可以方便的看到 loader 的加载过程。 LD_DEBUG=help ./mainValid options for the LD_DEBUG environment variable are: libs display library sea
2012-05-09 11:21:27 5864 4
转载 prelink princeple
预链接(Prelink)利用这一点,修改ELF共享库和二进制文件,将链接信息加入到可执行文件中以简化动态链接重定位,从而使程序启动加快。预链 接首先搜集要预链接的ELF二进制文件及其所依赖的共享库,为每个库分配唯一的虚拟空间位置,并将共享库重新链接到这个基准位置(动态链接器要加载这个库 时,只要虚拟空间地址未被占用,它就会将库映射到指定位置);然后预链接解析二进制或者库中的所有重定位,并将重定位信
2012-05-07 15:03:16 741
转载 ELF的GOT和PLT以及PIC
http://zhiwei.li/text/2009/04/elf%E7%9A%84got%E5%92%8Cplt%E4%BB%A5%E5%8F%8Apic/ELF 格式的共享库使用 PIC 技术使代码和数据的引用与地址无关,程序可以被加载到地址空间的任意位置。PIC 在代码中的跳转和分支指令不使用绝对地址。PIC 在 ELF 可执行映像的数据段中建立一个存放所有全局变量指针的全局偏移
2012-05-07 11:54:26 1013
转载 gcc与obj文件,动态链接文件和ELF文件
1、obj文件 程序员编写程序,其实就是编写出一个2进制(binary)文件。假如我们声明一个变量char c,也就是声明需要一个8bit的空间,那么就需要向系统声明豫留8bit的空间,怎么做到这一点呢?就是编译一个特殊的2进制文件--obj文件,用gcc编译的C语言得到的执行文件,里面不仅包含CPU指令,还有很多别的信息在里面,它有很多格式COFF、ELF……等等,在最后一道编译过
2012-05-07 10:34:20 1116
转载 ELF 文件格式常见段名称及自定义段
除了最常见的为 .text, .data, .bss 这 3 个段之外,还有其它的一些常见段,如下所示:.strtab : String Table 字符串表,用于存储 ELF 文件中用到的各种字符串。.symtab : Symbol Table 符号表,从这里可以所以文件中的各个符号。.shstrtab : 是各个段的名称表,实际上是由各个段的名字组成的一个字符串数组。
2012-05-07 09:39:55 6301
转载 从程序员角度看ELF
从程序员角度看ELF原文:《 ELF:From The Programmer's Perspective》作者:Hongjiu Lu NYNEX Science & Technology, Inc. 500 Westchester Avenue White Plains, NY 10604, USA 翻译:alert7
2012-05-05 11:22:01 805
转载 linux启动加速
linux启动加速主要有三个工具:prelink readaheab preload.prelink就是预连接程序的动态连接库,达到提升软件启动速度,甚至减少程序运行时所需的内存。安装:apt-get install prelink运行sudo /usr/sbin/prelink -avmR #需要几分钟时间以后启动系统软件的启动速度就加快了当更新了某些软件后,运行sudo
2012-05-04 23:59:28 725
转载 Making C++ ready for the desktop
Author: Waldo Bastian Date: May 3, 2001Version: 1.1 (See bottom for change history)In this paper I would like to bring the attention to an important performancebottleneck in the ld.so linker
2012-04-28 15:07:02 904
翻译 在linux下使用libunique实现单实例
Hello! Here ‘s a fairly simple example of how to create single instance Applications with LibUnique and Gtk +. I took the example in the documentation and changed it to demonstrate how to pass a par
2012-03-29 20:37:03 598
转载 static_cast、dynamic_cast、reinterpret_cast、和const_cast
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。st
2012-03-27 14:16:28 347
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人