![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件开发技术
yeswelkin
这个作者很懒,什么都没留下…
展开
-
使用perl MIME::Base64模块进行base64编码解码
[quote]root@t225 libexec]# perl -MMIME::Base64 -e 'print encode_base64("123")'MTIz[root@t225 libexec]# perl -MMIME::Base64 -e 'print decode_base64("MTIz")'123[root@t225 l...原创 2009-12-27 21:05:58 · 409 阅读 · 0 评论 -
C++程序coredump及调试过程
[code="c++"]class TSimpleString{public: typedef char charT; TSimpleString() : m_pStorage(NULL) {} ~TSimpleString() { clear(); } TSimpleString(const TSimpleString& p) { reset(p.m_pStorage...2010-05-22 13:09:12 · 524 阅读 · 0 评论 -
linux动态链接库的创建与使用
这两天要做一个linux动态链接库.so文件,开始我选择用C++编写linux动态链接库,但在调用该链接库运行时会提示symbol找不到,如果用C语言编写动态链接库运行时就可以得到正确的结果。开始还以为创建linux动态链接库so文件不能用c++,后来终于找到答案,使用C++时要使用extern "C"。使用linux动态链接库: 在Unix上存在两种库:动态库(.so)和静态...原创 2010-01-03 17:52:15 · 126 阅读 · 0 评论 -
extern "C"的用法
extern "C"表示编译生成的内部符号名使用C约定。 C++支持函数重载,而C不支持,两者的编译规则也不一样。函数被C++编译后在符号库中的名字与C语言的不同。例如,假设某个函数的原型为: void foo( int x, int y ); 该函数被C编译器编译后在符号库中的名字可能为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不...原创 2010-01-03 17:48:57 · 119 阅读 · 0 评论 -
编程之美:让CPU占用率曲线听你指挥
今天看2008年3月份《程序员》看到有一篇文章挺有意思,题目是:让CPU占用率曲线听你指挥《编程之美--微软技术面试心得》节选。刚看到题目,感觉很难很不可思议。往下看,弄清楚几个问题后,题目就没有那么难了。2.4Ghz CPU表示每秒钟有2.4*10的9次方个时钟周期一个空循环写成汇编代码后有5条指令每个时钟周期大概可以执行2条汇编指令Windows的调度时间片约为10毫...原创 2009-12-27 21:29:26 · 96 阅读 · 0 评论 -
见证超级用户的超级权限
今天,某同事向我反应,我写的程序有问题。出问题的大致功能是这样的,我需要在不修改原文件的情况下,备份一个新的文件出来(新文件最后一小部分内容还保存在内存)。实现方法的方法很简单,读取旧文件,然后将内容写到新文件,读取完旧文件后,再将内存部分内容写到新文件。现在问题出来了,备份的新文件比旧文件小很多,只看到一小部分内容(我猜是原先保存在内存的那部分)。在同事的电脑上测试,每次都可以重现,但我...原创 2009-12-27 21:21:27 · 197 阅读 · 0 评论 -
使用Valgrind检测linux上c++内存泄露
[code="C++"]//mytest.cppint main(int argc, char * argv[]){ //line 120 const int N=10; // # of elements in array const int g_nLargeRange = 500 * 1024 * 1024; cout原创 2009-12-27 21:15:21 · 277 阅读 · 0 评论 -
C语言#define的特殊用法
[code="c"]#define Conn(x,y) x##y[/code]##表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";[code="c"]#define ToChar(x) #@x[/code]#@表示给x加上...原创 2009-12-27 21:13:57 · 149 阅读 · 0 评论 -
最奇妙的算法题
1. 给你n个数,其中有且仅有一个数出现了奇数次,其余的数都出现了偶数次。用线性时间常数空间找出出现了奇数次的那一个数。2. 给你n个数,其中有且仅有两个数出现了奇数次,其余的数都出现了偶数次。用线性时间常数空间找出出现了奇数次的那两个数。1. 从头到尾异或一遍,最后得到的那个数就是出现了奇数次的数。这是因为异或有一个神奇的性质:两次异或同一个数,结果不变。再考虑到异或运算满足交换律,...原创 2009-12-27 21:11:22 · 232 阅读 · 0 评论 -
计数排序算法
参考: [url=http://hi.baidu.com/%D1%A9%D6%D0%CB%F2%D2%C2/blog/item/c699eff3b1d035c30a46e0df.html]计数排序算法[/url]特性:只用于无符号整数,对于有符号的整数可以通过对每个数组元素都加减一个数解决。 通过计算数组元素的最大、最小值得到统计数组的大小 需要使用额外的空间,空间大小是(...原创 2009-12-27 21:07:18 · 75 阅读 · 0 评论 -
原创C++笔试题,查找一个字符串类不正确的地方
[code="c++"]#include #include class TSimpleString{public: static const size_t npos; TSimpleString() : m_pStorage(NULL) {} TSimpleString(const TSimpleString& s) { assign(s.m_pStorage); ...2010-06-02 21:32:35 · 154 阅读 · 0 评论