- 博客(203)
- 资源 (2)
- 收藏
- 关注
转载 GDB 调试6 7
http://blog.csdn.net/haoel/article/details/2885改变程序的执行——————— 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。
2014-12-12 16:39:09 1975
转载 GDB 调试4 5
http://blog.csdn.net/haoel/article/details/2883查看运行时数据——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print print / 是表
2014-12-12 16:36:19 1813
转载 GDB调试 1 2 3
用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:
2014-12-12 16:34:33 1114
转载 Apache Thrift - 可伸缩的跨语言服务开发框架
http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/前言:目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Service,基于 JSON 消息格式的 RESTful 服务等。其中所用到的数据传输方式包括 XML,JSON 等,然而 XML 相对体积太大,传输效率低,JSON
2014-03-16 21:38:45 1115
转载 Linux expr 命令详解
用途求表达式变量的值。语法expr Expression描述expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出。您必须对 Expression 参数应用以下规则:用空格隔开每个项。用 \ (反斜杠) 放在 shell 特定的字符前面。对包含空格和其他特殊字符的字符串要用
2012-11-06 23:29:13 6717
转载 linux tr命令详解
http://blog.sina.com.cn/s/blog_58c3f7960100uttl.html通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。 tr用来从标准输入中通过替换或删除
2012-11-06 22:34:22 952
转载 linux shell 字符串操作(长度,查找,替换)详解
http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。 一、判
2012-11-06 22:25:26 1057
转载 linux echo设置颜色
echo要变换颜色的时候,要使用参数-e格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"例如: echo -e "\033[41;36m something here \033[0m"其中41的位置代表底色, 36的位置是代表字的颜色注:1、字背景颜色和文字颜色之间是英文的“""”2、文字颜色后面有个m3、字符串前后可以没有空
2012-11-05 23:20:12 7984
原创 三扇门的问题
《三扇门理论》有三扇门A、B、C,其中只有一扇门后有汽车,另外两扇门后面一无所有。现在让一个人来选,如果他选的门后面有汽车,他将得到汽车;如果他选择的门后面一无所有,他将一无所得。现假定你选了C门,而主持人知道另外两扇门后的情况,于是他打开了A、B两门中的一扇,设为B,门后没有汽车;这时主持人告诉你,现在还可以改变选择,即在C门和A门之间选择,问,你是否应该改变你的选择?
2012-10-25 23:38:48 9867
原创 猴子分桃
五只猴子一起摘了一堆桃子,因为太累了,它们商量决定,先睡一觉再分.一会其中的一只猴子来了,它见别的猴子没来,便将这堆桃子平均分成5份 ,结果多了一个,就将多的这个吃了,并拿走其中的一份.一会儿,第2只猴子来了,他不知道已经有一个同伴来过,还以为自己是第一个到的呢,于是将地上的桃子堆起来,再一次平均分成5份,发现也多了一个,同样吃了这1个,并拿走其中一份.接着来的第3,第4,第5只猴子都是这样做的.
2012-10-14 19:00:58 1990
原创 gcc编译执行时需要执行的库
程序中用到 math.c,使用 gcc 编译,需要加上 -lm 选项。在编译C的多线程时候,一方面必须指定Linux C语言线程库多线程库pthread,才可以正确编译(例如:gcc test.c -o test -lpthread);另一方面要包含有关线程头文件#include 。
2012-08-12 18:47:18 852
原创 输入一个正数 n,输出所有和为n 连续正数序列。
题目:输入一个正数 n,输出所有和为n 连续正数序列。例如输入 15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。可以发现任意自然数序列其实是公差为1的等差数列,那么数列前N项和公式有a1*n +n*(n-1)/2 = sn,而这里sn = 输入的正整数input。通过分析a1只需在集合[1,input/2]中,把上式等效变形为n*
2012-08-12 16:50:18 5088
转载 进程和线程的区别
http://blog.csdn.net/andy6355/article/details/2506171进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内
2012-08-12 16:10:17 748
原创 C++ STL vector:sizeof(vector)
int的大小是4,定义vector vec,vec中有一个元素,sizeof(vec)=20,如果有1000个元素,则sizeof(vec)是多少?#include #include using namespace std;int main(){ vector vec; for(int i=0;i<100;i++) { vec.push_back(i); cou
2012-08-12 15:28:16 13528 1
原创 Linux ls -l &ll
在ubuntu中,调用ls -l和调用ll的结果是一样的,难道ll是通过alias设置的别名?通过调用alias可以看到alias ll = 'ls -alF'证明确实是这样子的!
2012-07-24 23:49:56 1169
原创 动态数组
动态数组的分配是在自由存储区,即堆中进行的。动态分配的数组将一直存在,知道程序显示的释放它为止。malloc和free,new和delete。注意在delete之后,记得把指针设为空。int *pia=new int[10];delete [] pia;pia=NULL;delete pia时,不要忘记[],因为pia指向的是一个数组。一定要释放!否则会造成memory leak。
2012-03-24 14:09:19 1806
原创 C风格字符串
字符串常量是存储在常量存储区(文字常量区),因此不能改变其值。#include using namespace std;int main(void){ char *p="C++"; *(p+1)='d'; cout char ch[]="c++"; ch[0]='d'; cout return 0;}
2012-03-24 12:12:33 671
原创 指针
赋给指针0值时,这个0值必须是在编译时可获得的0值,例如数值0,或const常量0值,就像定义数组长度时,需要用enum常量或const常量相同。预处理变量NULL定义在cstdlib头文件中,其值为0。在代码中使用该值,则编译时会自动被数值0替换。对为NULL值的指针变量解引用,则会出现运行错误。#include #include using namespace st
2012-03-24 10:58:34 1554
原创 数组
数组的初始化:如果没有显示提供元素初值,则数组则会和普通变量一样初始化。#include #include using namespace std;int main(void){ const size_t size=5; int a[size]={}; for(size_t i=0;i { cout }
2012-03-24 10:32:50 7593 1
转载 程序员相关
中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际fans,压根没有资格称为程序员,但是据我所知,不少小网络公司的Cfans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓人。 程序员基本素质:
2012-03-21 11:04:33 911 1
原创 连续输入两个vector
#include #include #include using namespace std;int main(void){ vector vect1,vect2; int temp; bool equal2=true; while(cin>>temp) { vect1.push_back(temp);
2012-03-15 10:15:37 2131 2
原创 bitset
bitset如果bitset对象包含的二进制位数超过unsigned long的常数,将会产生编译错误。#include #include using namespace std;int main(void){ bitset temp; return 0;}103439432并没有大于unsigned long的最大值,上述程
2012-03-14 20:53:59 5504 1
原创 vector+iterator
循环可以容易的增加新元素,如果确实增加了元素的话,那么测试以保存的size值作为循环的结束条件就会有问题,因为没有将新加入的元素计算在内,像size这样的小库函数几乎都定义为内联函数,所以每次循环过程中调用它的运行时代价是比较小的。verctoriter1-iter2所得到的类型是difference_type类型,是signed。任何改变vector长度的操作都会使已存在的迭代器
2012-03-14 19:48:49 840 1
原创 string
#include #include using namespace std;int main(void){ string str("abcdefg"); str[3]='\0'; cout char ch[]="abcdefg"; ch[3]='\0'; cout return 0;}运行结果
2012-03-14 18:42:07 867 1
原创 头文件设计注意事项
头文件用于声明而不是用于定义。对于非const变量不能在头文件中定义,因为非const变量默认为extern,如果头文件被多次包含(直接或间接),那么变量就会被重复定义,因此头文件中只能声明变量。extern int a=10;//不能用于头文件中extern int b;//可以int c;//不可以,是定义这需要清楚的什么是定义什么是声明。对于const变量,默认情况下
2012-03-11 14:01:35 985 1
原创 reference初始化
引用变量和const变量一样,在声明是要初始化,即要定义,不能仅声明。不管是全局还是局部变量都要初始化。不同于const变量,即使是具有默认构造函数的类的引用变量也需要初始化。const引用可以指向非const变量,const变量,或者右值(常量表达式)。例如:#include using namespace std;int main(void){ int a=1
2012-03-11 13:52:06 1031 1
原创 const初始化
const变量为左值,在初始化时,变量出现在等号左边。C++全局变量的初始化,对于内置类型,如果是全局变量则初始化为0,否则未知。#include using namespace std;int a;int main(void){ int b; return 0;}则有a=0;b未知const变量必须要初始化,但是如果
2012-03-10 19:21:04 1212 1
原创 CodeBlocks+MinGW+wcout+中文 小记
开始好好学习C++,看到第一部分第二章有关于wchar_t宽字节,有关于wcout,编了下试了试,#include int main(){ std::wcout.imbue(std::locale("chs")); std::wcout return 0;}声明下,这个时候用的编辑器是C-Free,编译器是MinGW,可是出现两个错误,具体忘了什
2012-03-10 13:15:16 1316 1
原创 AT&T和GAS汇编区别
绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是Intel 风格的。但在 Unix 和 Linux 系统中,更多采用的还是 AT&T 格式,两者在语法格式上有着很大的不同: 1.在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。例如:
2012-01-09 14:52:37 968
原创 leal
leal 其实和数据传送指令movel的效果一样,不同在于:leal S,D 结果:&S->Dmovel S,D 结果:S->D如:leal (%edx), %eax %eax中存的结果:%edx (直接赋值)movel %edx),%eax %eax中存的结果:M〔%edx〕(访存)
2012-01-09 14:10:23 5593
原创 VS2008快捷键大全
Ctrl+m+Crtr+o折叠所有大纲Ctrl+M+Crtr+P: 停止大纲显示Ctrl+K+Crtr+C: 注释选定内容Ctrl+K+Crtr+U: 取消选定注释内容Ctrl+J : 列出成员 智能感知Shift+Alt+Enter: 切换全屏编辑Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl
2012-01-09 11:46:47 773
原创 常见处理器大小端
处理器 操作系统 字节排序Alpha 全部 Little endianHP-PA NT Little endianHP-PA UNIX Big endianIntelx86 全部 Little endian <-----x86系统是小端字节序系统Motorola680x() 全部 Big en
2011-12-13 19:03:08 2520
原创 C语言恶心题目
#include void main(){ int a = 0x12345678; int b = 0x567890AB; int c = 0x7890ABCD; char * p = (char*)&a; char * q = p + 2; int x = *(int*)q; printf("x=%X",x);}
2011-12-13 18:02:50 815
原创 C莫名其妙题目
有时候会遇到一些莫名其妙的题目,输出一些莫名其妙的结果,但是其中都有有道理的,需要好好理解。#includeint main(){ int a='abc'; printf("%s\n",&a); //printf(&a);}在window XP系统,C-Free中执行编译时有两个警告,最后输出结果是cba。解释:int a='abc';编译器
2011-11-08 15:43:21 690
翻译 哈佛大学馆训
馆训: 1.现在睡觉的话会做梦 而现在学习的话会让梦实现 This moment will nap, you will have a dream; But this moment study,you will interpret a dream. 2.我无所事事地度过的今天是昨天死去的人们所奢望的明天 I leave uncultivated toda
2011-11-08 09:23:28 1486
转载 HP(惠普)大中华区总裁孙振耀退休感言
一、关于工作与生活我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽,最后大多跳到民企,比方说,唐骏。外企员工的成功很大程度上是公司的成功,并非个人的成功,西门子的确比国美大,但并不代表西门子中国经理比国美的老板强,甚至可以说差得很远。而进外企的人往往并不
2011-11-08 08:54:22 1572
转载 unix vi使用
一、Unix编辑器概述编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix及其相似的ix操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑器,包括 ex, edit,ed 和vi.其中ex,edit,ed都是行编辑器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。值得庆幸的是,Unix提供
2011-10-26 14:41:31 1645 1
转载 链接器的使用
许多 Visual C++ 的使用者都碰到过 LNK2005:symbol already defined 和 LNK1169:one or more multiply defined symbols found 这样的链接错误,而且通常是在使用第三方库时遇到的。对于这个问题,有的朋友可能不知其然,而有的朋友可能知其然却不知其所以然,那么本文就试图为大家彻 底解开关于它的种种疑惑。 大家都
2011-10-24 10:16:57 1242
转载 在嵌入式系统中实现从RAM快速引导技术
http://www.avrw.com/article/art_104_3949.htm摘 要: 本文以ARM7TDMI为例,对嵌入式系统从ROM和RAM引导的特点及技术实现进行了比较,对异常和中断概念给出了详细的辨析,介绍了如何实现嵌入式系统从RAM快速引导技术。 关键词: 引导;异常向量;中断;堆栈;镜像 前言 嵌入式系统是以各种嵌入式微处理器为内核,运行
2011-10-24 09:49:57 1169
转载 main函数执行以前
现在最重要的是要跟得上潮流,所以套用比较时髦的话,谁动了我的奶酪。谁调用了我的 main?不过作为计算机工作者,我劝大家还是不要赶时髦,今天Java热,明天 .net 流行,什么时髦就学什么。我的意思是先花几年把基本功学好,等你赶时髦的时候也好事半功倍。废话不多说了。 我们都听说过一句话:“main是C语言的入口”。我至今不明白为什么这么说。就好像如果有人说:“挣钱是泡妞”,
2011-10-24 09:37:37 1013
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人